import { VueNode, WithFalse } from "../typings";
import { App, CSSProperties } from 'vue';
import { ComponentPropsOptions } from '@vue/runtime-core';
import { GlobalHeaderProps } from "../GlobalHeader";
import { SideMenuProps } from "../SideMenu";
import { MenuDataItem } from "../AppMenu";
/**
 * 布局头部渲染
 */
export declare type HeaderRender = (props: GlobalHeaderProps) => VueNode;
/**
 * 布局底部渲染
 */
export declare type FooterRender = (props: any, defaultDom: VueNode) => VueNode;
export interface ProLayoutProps extends GlobalHeaderProps, SideMenuProps {
    prefixCls?: string;
    menus?: MenuDataItem[];
    pure?: boolean;
    /**
     *@name logo url
     */
    logo?: WithFalse<VueNode>;
    title?: string;
    /**
     * @description 是否加载中
     */
    loading?: boolean;
    /**
     * @description 布局头部自定义渲染方法
     */
    headerRender?: WithFalse<HeaderRender>;
    /**
     * @description 布局底部自定义渲染方法
     */
    footerRender?: WithFalse<FooterRender>;
    colSize?: string;
    /**
     * @description 内容区域样式
     */
    contentStyle?: CSSProperties;
    /**
     * @description 禁用内容区域默认的 margin
     */
    disableContentMargin?: boolean;
    collapse?: (collapsed: boolean) => void;
}
export declare const DefaultProLayoutProps: ComponentPropsOptions<ProLayoutProps>;
declare const _default: ({
    new (...args: any[]): {
        $: import("vue").ComponentInternalInstance;
        $data: {};
        $props: Partial<{}> & Pick<Readonly<{
            [x: string]: any;
        }> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, string>;
        $attrs: Record<string, unknown>;
        $refs: Record<string, unknown>;
        $slots: Readonly<{
            [name: string]: import("vue").Slot | undefined;
        }>;
        $root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
        $parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
        $emit: (event: string, ...args: any[]) => void;
        $el: any;
        $options: import("vue").ComponentOptionsBase<Readonly<{
            [x: string]: any;
        }>, object, {}, Record<string, import("@vue/reactivity").ComputedGetter<any> | import("vue").WritableComputedOptions<any>>, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {}>;
        $forceUpdate: import("vue").ReactiveEffect<any>;
        $nextTick: typeof import("vue").nextTick;
        $watch(source: string | Function, cb: Function, options?: import("vue").WatchOptions<boolean> | undefined): import("vue").WatchStopHandle;
    } & Readonly<{
        [x: string]: any;
    }> & import("vue").ShallowUnwrapRef<{} & object> & {
        [x: string]: never;
    } & import("vue").MethodOptions & import("vue").ComponentCustomProperties;
    __isFragment?: undefined;
    __isTeleport?: undefined;
    __isSuspense?: undefined;
} & import("vue").ComponentOptionsBase<Readonly<{
    [x: string]: any;
}>, object, {}, Record<string, import("@vue/reactivity").ComputedGetter<any> | import("vue").WritableComputedOptions<any>>, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & ((app: App<any>, ...options: any[]) => any) & {
    install?: ((app: App<any>, ...options: any[]) => any) | undefined;
}) | ({
    new (...args: any[]): {
        $: import("vue").ComponentInternalInstance;
        $data: {};
        $props: Partial<{}> & Pick<Readonly<{
            [x: string]: any;
        }> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, string>;
        $attrs: Record<string, unknown>;
        $refs: Record<string, unknown>;
        $slots: Readonly<{
            [name: string]: import("vue").Slot | undefined;
        }>;
        $root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
        $parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
        $emit: (event: string, ...args: any[]) => void;
        $el: any;
        $options: import("vue").ComponentOptionsBase<Readonly<{
            [x: string]: any;
        }>, object, {}, Record<string, import("@vue/reactivity").ComputedGetter<any> | import("vue").WritableComputedOptions<any>>, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {}>;
        $forceUpdate: import("vue").ReactiveEffect<any>;
        $nextTick: typeof import("vue").nextTick;
        $watch(source: string | Function, cb: Function, options?: import("vue").WatchOptions<boolean> | undefined): import("vue").WatchStopHandle;
    } & Readonly<{
        [x: string]: any;
    }> & import("vue").ShallowUnwrapRef<{} & object> & {
        [x: string]: never;
    } & import("vue").MethodOptions & import("vue").ComponentCustomProperties;
    __isFragment?: undefined;
    __isTeleport?: undefined;
    __isSuspense?: undefined;
} & import("vue").ComponentOptionsBase<Readonly<{
    [x: string]: any;
}>, object, {}, Record<string, import("@vue/reactivity").ComputedGetter<any> | import("vue").WritableComputedOptions<any>>, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
    install: (app: App<any>, ...options: any[]) => any;
});
export default _default;
