import { IPermissionTypes, IRange, Disposable, DisposableCollection, ICommandService, IContextService, IPermissionService, IUniverInstanceService, LocaleService } from '@univerjs/core';
import { RangeProtectionRuleModel, SheetsSelectionsService, WorksheetProtectionRuleModel } from '@univerjs/sheets';
import { IDialogService } from '@univerjs/ui';
import { IDefinedNamesService, LexerTreeBuilder } from '@univerjs/engine-formula';
import { IAutoFillService } from '../../services/auto-fill/auto-fill.service';
export declare const SHEET_PERMISSION_PASTE_PLUGIN = "SHEET_PERMISSION_PASTE_PLUGIN";
export declare class SheetPermissionInterceptorBaseController extends Disposable {
    private readonly _commandService;
    private readonly _univerInstanceService;
    private readonly _permissionService;
    private readonly _selectionManagerService;
    private readonly _dialogService;
    private _rangeProtectionRuleModel;
    private _worksheetProtectionRuleModel;
    private _autoFillService;
    private readonly _localeService;
    private readonly _lexerTreeBuilder;
    private readonly _contextService;
    private readonly _definedNamesService;
    disposableCollection: DisposableCollection;
    private _showPermissionDialog;
    constructor(_commandService: ICommandService, _univerInstanceService: IUniverInstanceService, _permissionService: IPermissionService, _selectionManagerService: SheetsSelectionsService, _dialogService: IDialogService, _rangeProtectionRuleModel: RangeProtectionRuleModel, _worksheetProtectionRuleModel: WorksheetProtectionRuleModel, _autoFillService: IAutoFillService, _localeService: LocaleService, _lexerTreeBuilder: LexerTreeBuilder, _contextService: IContextService, _definedNamesService: IDefinedNamesService);
    setShowPermissionDialog(value: boolean): void;
    haveNotPermissionHandle(errorMsg: string): void;
    private _getPermissionCheck;
    private _initialize;
    private _commandExecutedListener;
    private _permissionCheckWithInsertRangeMove;
    private _permissionCheckByWorksheetCommand;
    permissionCheckWithoutRange(permissionTypes: IPermissionTypes): boolean;
    permissionCheckWithRanges(permissionTypes: IPermissionTypes, selectionRanges?: IRange[], unitId?: string, subUnitId?: string): boolean;
    private _permissionCheckByPaste;
    private _permissionCheckByMoveCommand;
    private _permissionCheckByAutoFillCommand;
    private _permissionCheckByMoveRangeCommand;
    private _permissionCheckBySetRangeValue;
    private _permissionCheckWithFormula;
}
