import type { CSSProperties, InjectionKey, PropType, Ref, ToRefs } from 'vue';
import type { ExtractPublicPropTypes } from '../_util/interface';
export declare enum COMPONENT_NAME {
    LAYOUT = "FLayout",
    HEADER = "FHeader",
    FOOTER = "FFooter",
    ASIDE = "FAside",
    MAIN = "FMain"
}
export interface LayoutChild {
    type: COMPONENT_NAME;
}
export type AsidePlacement = 'left' | 'right' | '';
export declare const layoutProps: {
    readonly embedded: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly fixed: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    readonly containerClass: PropType<CSSProperties>;
    readonly containerStyle: PropType<CSSProperties>;
};
export type LayoutProps = ExtractPublicPropTypes<typeof layoutProps>;
export interface LayoutInst extends ToRefs<LayoutProps> {
    addChild: (child: LayoutChild) => void;
    asidePlacement?: Ref<AsidePlacement>;
}
export declare const LAYOUT_PROVIDE_KEY: InjectionKey<LayoutInst>;
