import { ILayoutContextProps } from '../components/CdsLayout/context';
import { PropType, Ref, ComputedRef, CSSProperties } from 'vue';
export interface ILayoutProps {
    modelValue: boolean;
    reveal: boolean;
    revealOffset: number;
    bordered: boolean;
    elevated: boolean;
    height: string | number;
}
export interface IUseLayout {
    layout: ILayoutContextProps;
    size: Ref<number>;
    revealed: Ref<boolean>;
    fixed: Ref<boolean>;
    windowHeight: Ref<number>;
    containerHeight: ComputedRef<number>;
    offset: ComputedRef<number>;
    hidden: ComputedRef<boolean>;
    revealOnFocus: ComputedRef<boolean>;
    classes: ComputedRef<Record<string, boolean>>;
    style: Ref<CSSProperties>;
    updateLocal: (prop: Ref, value: any) => void;
    updateRevealed: () => void;
    onResize: (rect: Pick<DOMRectReadOnly, 'width' | 'height'>) => void;
}
export declare const makeLayoutProps: <Defaults extends {
    modelValue?: unknown;
    reveal?: unknown;
    revealOffset?: unknown;
    bordered?: unknown;
    elevated?: unknown;
    height?: unknown;
} = {}>(defaults?: Defaults | undefined) => import('../utils').AppendDefault<{
    /**
     * Видимость элемента
     */
    modelValue: {
        type: PropType<boolean>;
        default: boolean;
    };
    /**
     * Плавающий элемент
     */
    reveal: {
        type: PropType<boolean>;
        default: boolean;
    };
    /**
     * Отступ для плавающего элемента
     */
    revealOffset: {
        type: PropType<number>;
        default: number;
    };
    /**
     * Отображение границы
     */
    bordered: {
        type: PropType<boolean>;
        default: boolean;
    };
    /**
     * Отображение тени
     */
    elevated: {
        type: PropType<boolean>;
        default: boolean;
    };
    /**
     * Высота элемента
     */
    height: {
        type: PropType<string | number>;
        default: number;
    };
}, Defaults>;
export declare function useLayout(props: ILayoutProps, componentName: string, view?: 'H' | 'F'): IUseLayout;
