import { IRange, Nullable } from '@univerjs/core';
import { IRangeProtectionRule, IWorksheetProtectionRule } from '@univerjs/sheets';
export declare enum viewState {
    othersCanView = "othersCanView",
    noOneElseCanView = "noOneElseCanView"
}
export declare enum editState {
    designedUserCanEdit = "designedUserCanEdit",
    onlyMe = "onlyMe"
}
type IPermissionPanelBaseRule = IRangeProtectionRule | IWorksheetProtectionRule;
export type IPermissionPanelRule = IPermissionPanelBaseRule & {
    viewStatus?: viewState;
    editStatus?: editState;
    ranges: IRange[];
};
export declare class SheetPermissionPanelModel {
    private _rule;
    private _rule$;
    private _oldRule;
    private _rangeErrorMsg$;
    private _visible;
    setVisible(v: boolean): void;
    getVisible(): boolean;
    rangeErrorMsg$: import('rxjs').Observable<string>;
    setRangeErrorMsg(msg: string): void;
    rule$: import('rxjs').Observable<IPermissionPanelRule>;
    get rule(): IPermissionPanelRule;
    setRule(ruleObj: Partial<IPermissionPanelRule>): void;
    resetRule(): void;
    reset(): void;
    get oldRule(): Nullable<IPermissionPanelRule>;
    setOldRule(ruleObj: Nullable<IPermissionPanelRule>): void;
}
export {};
