import { ActiveRecord, ActiveRecords, IPopupInstance, IPopupWidget, RelationUpdateType, RuntimeAction, RuntimeViewAction, SubmitValue } from '@oinone/kunlun-engine';
import { ViewType } from '@oinone/kunlun-meta';
import { CallChaining } from '@oinone/kunlun-shared';
import { ActiveRecordsWidget, ActiveRecordsWidgetProps } from '@oinone/kunlun-vue-widget';
import { ClickResult, PopupEventHandles, PopupScene, PopupSubmitParameters, PopupSubmitType } from '../../typing';
export interface PopupWidgetProps extends ActiveRecordsWidgetProps {
    mountedVisible?: boolean;
}
/**
 * 弹出层组件，如弹出框、抽屉等
 */
export declare abstract class PopupWidget<Props extends PopupWidgetProps = PopupWidgetProps> extends ActiveRecordsWidget<Props> implements IPopupWidget<Props> {
    private handlers;
    protected openerDataSource: ActiveRecord[] | undefined;
    protected openerActiveRecords: ActiveRecord[] | undefined;
    protected get popupSubmitType(): PopupSubmitType;
    protected get viewType(): ViewType;
    protected get maskClosable(): boolean;
    protected get mask(): boolean;
    protected get closable(): boolean;
    protected currentRelationUpdateType: RelationUpdateType | undefined;
    get relationUpdateType(): RelationUpdateType;
    protected abstract getPopupScene(): PopupScene | string;
    protected get popupScene(): string;
    protected get action(): RuntimeViewAction | undefined;
    get dataSource(): ActiveRecord[] | undefined;
    reloadDataSource(records: ActiveRecords | undefined): void;
    get activeRecords(): ActiveRecord[] | undefined;
    reloadActiveRecords(records: ActiveRecords | undefined): void;
    flushDataSource(): void;
    /**
     * 这里某个组件需要知道自己在某个特定组件中，进行特殊逻辑处理，暂时先使用这种方式进行识别
     * @protected
     */
    protected isCard: boolean;
    protected currentMountedCallChaining: CallChaining | undefined;
    get mountedCallChaining(): CallChaining | undefined;
    protected parentRefreshCallChaining: CallChaining<boolean> | undefined;
    protected currentRefreshCallChaining: CallChaining<boolean> | undefined;
    get refreshCallChaining(): CallChaining<boolean> | undefined;
    protected submitCallChaining: CallChaining<SubmitValue> | undefined;
    protected validatorCallChaining: CallChaining<boolean> | undefined;
    /**
     * 置空cols属性
     */
    cols: number | undefined;
    private visible;
    private mountedVisible;
    private get openHandle();
    initialize(props: Props): this;
    onOk(): Promise<void>;
    onCancel(): Promise<void>;
    get isVisible(): boolean;
    beforeClose: any;
    onVisibleChange<Action extends RuntimeAction = RuntimeAction>(visible: boolean, triggerAction?: Action): Promise<void>;
    onSubmitToParent: ((parameters: PopupSubmitParameters) => ClickResult) | undefined;
    onCancelToParent: ((parameters: PopupSubmitParameters) => ClickResult) | undefined;
    private onSubmitProvider;
    private onCancelProvider;
    protected isSameModel(): boolean;
    protected executeMapping(parameters: PopupSubmitParameters, mapping: Record<string, unknown>): PopupSubmitParameters;
    protected $$executeMapping(records: ActiveRecord[], mapping: Record<string, unknown>, isSameModel: boolean): ActiveRecord[];
    private onNotify;
    on(type: keyof PopupEventHandles, handler: Function): void;
    protected findPopupInstance(): IPopupInstance | undefined;
    protected $$beforeCreated(): void;
    protected $$created(): void;
    protected $$beforeMount(): void;
    protected $$mounted(): void;
    dispose(force?: boolean): void;
    protected allMounted(): void;
}
