import { CallSettingsResponse, OwnCapability } from '../gen/coordinator';
import { TrackType } from '../gen/video/sfu/models/models';
/**
 * Stores the permissions for the current user and exposes
 * a few helper methods which make it easier to work with permissions.
 *
 * This is an internal class meant to be used in combination with
 * a {@link Call} instance.
 *
 * @internal
 */
export declare class PermissionsContext {
    private permissions;
    private settings?;
    /**
     * Sets the permissions for the current user.
     *
     * @param permissions the permissions to set.
     */
    setPermissions: (permissions: OwnCapability[]) => void;
    /**
     * Sets the settings for the bound call.
     * @param settings
     */
    setCallSettings: (settings: CallSettingsResponse) => void;
    /**
     * Checks if the current user has a specific permission.
     *
     * @param permission the permission to check for.
     */
    hasPermission: (permission: OwnCapability) => boolean;
    /**
     * Helper method that checks whether the current user has the permission
     * to publish the given track type.
     */
    canPublish: (trackType: TrackType) => boolean;
    /**
     * Checks if the current user can request a specific permission
     * within the call.
     *
     * @param permission the permission to check for.
     * @param settings the call settings to check against (optional).
     */
    canRequest: (permission: OwnCapability, settings?: CallSettingsResponse | undefined) => boolean;
}
