import { VueComponentBase } from "..";
import { IWebComponentInstance, SubscriptionHandler } from "../../";
import { GuidValue, Identity, PermissionBinding, PermissionInputSettings, RolePermissionSetting } from "../../models";
import { IPermissionInput } from "./IPermissionInput";
import { IValidator } from "../validation";
export declare class PermissionInput extends VueComponentBase implements IWebComponentInstance, IPermissionInput {
    subscriptionHandler: SubscriptionHandler;
    private permissionService;
    private omniaCtx;
    private loc;
    private omniaUxLoc;
    settings: PermissionInputSettings;
    contextParams?: {
        [key: string]: string | number;
    };
    onValueUpdated?: (rolePermissionSetting: Array<RolePermissionSetting>) => Promise<void>;
    onValueUpdating?: () => Promise<void>;
    dark?: boolean;
    hideSaveButton?: boolean;
    disabled?: boolean;
    serviceId?: GuidValue;
    dataSource?: {
        [roleId: string]: Array<PermissionBinding>;
    };
    useValidator: IValidator;
    private styles;
    validator: IValidator;
    isResolving: boolean;
    errMsg: string;
    isSaving: boolean;
    result: {
        [roleId: string]: Array<Identity>;
    };
    previousPromiseRejecter: () => void;
    mounted(): void;
    created(): void;
    getPermissionBindings(): void;
    setPermissionBindings(result: {
        [roleId: string]: Array<PermissionBinding>;
    }): void;
    mapToUserIdentities(permissionBindings: PermissionBinding[]): Identity[];
    onPeoplePickerModelChange(id: string, val: Identity[]): void;
    save(): void;
    renderButtonsAndMsg(): VueTsxSupport.JSX.Element;
    renderPermissionInput(): VueTsxSupport.JSX.Element[];
    render(): VueTsxSupport.JSX.Element;
}
