import { TabsPaneContext } from 'element-plus';
import { VNode, Ref, ComputedRef, ExtractPropTypes } from 'vue';
import { WetProCardTabItem } from '../../index';

export type WetProPageContainerRq<T = any> = (...p: any) => Promise<T>;
export type WetProPageContainerProvide<D = any> = {
    pageInfo: Ref<D>;
    pageStatus: ComputedRef<Record<string, any>>;
    refresh: () => Promise<void>;
    setPageStatus: (v: Record<string, any>) => void;
};
export declare const wetProPageContainerProps: {
    title: StringConstructor;
    fixedHeader: BooleanConstructor;
    breadcrumb: import('element-plus/es/utils').EpPropFinalized<import('vue').PropType<false | {
        path: string;
        name: string;
    }[]>, unknown, unknown, () => any[], boolean>;
    extra: import('element-plus/es/utils').EpPropFinalized<import('vue').PropType<VNode<import('vue').RendererNode, import('vue').RendererElement, {
        [key: string]: any;
    }>[]>, unknown, unknown, () => any[], boolean>;
    loading: BooleanConstructor;
    request: {
        readonly type: import('vue').PropType<WetProPageContainerRq<any>>;
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    status: import('element-plus/es/utils').EpPropFinalized<import('vue').PropType<Record<string, any>>, unknown, unknown, () => {}, boolean>;
    fill: BooleanConstructor;
    pageKey: {
        readonly type: import('vue').PropType<import('element-plus/es/utils').EpPropMergeType<(StringConstructor | NumberConstructor)[], unknown, unknown>>;
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    tabList: {
        readonly type: import('vue').PropType<WetProCardTabItem[]>;
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    tabProps: {
        readonly type: import('vue').PropType<Partial<{
            readonly type: import('element-plus/es/utils').EpPropMergeType<StringConstructor, "" | "card" | "border-card", unknown>;
            readonly editable: boolean;
            readonly closable: boolean;
            readonly addable: boolean;
            readonly tabPosition: import('element-plus/es/utils').EpPropMergeType<StringConstructor, "top" | "bottom" | "right" | "left", unknown>;
            readonly beforeLeave: (newName: import('element-plus').TabPaneName, oldName: import('element-plus').TabPaneName) => import('element-plus/es/utils').Awaitable<boolean | void>;
            readonly stretch: boolean;
        } & {
            readonly modelValue?: import('element-plus/es/utils').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
        } & {
            onTabRemove: (n: string) => void;
            onTabChange: (n: string) => void;
            onTabAdd: () => void;
            onEdit: (n: string, action: 'remove' | 'add') => void;
            onTabClick: (pane: TabsPaneContext, ev: Event) => void;
        }>>;
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
    tabKey: {
        readonly type: import('vue').PropType<import('element-plus/es/utils').EpPropMergeType<(StringConstructor | NumberConstructor)[], unknown, unknown>>;
        readonly required: false;
        readonly validator: (val: unknown) => boolean;
        __epPropKey: true;
    };
};
export type WetProPageContainerProps = ExtractPropTypes<typeof wetProPageContainerProps>;
