import type { LayoutItemProps } from './types';
import type { PropType, Ref } from 'vue';
export declare const makeLayoutItemProps: <Defaults extends {
    modelValue?: unknown;
    name?: unknown;
    position?: unknown;
    anchor?: unknown;
    priority?: unknown;
} = {}>(defaults?: Defaults | undefined) => {
    modelValue: unknown extends Defaults["modelValue"] ? {
        type: PropType<boolean | undefined>;
        default: boolean;
    } : Omit<{
        type: PropType<boolean | undefined>;
        default: boolean;
    }, "type" | "default"> & {
        type: PropType<unknown extends Defaults["modelValue"] ? boolean | undefined : NonNullable<boolean | undefined> | Defaults["modelValue"]>;
        default: unknown extends Defaults["modelValue"] ? boolean | undefined : NonNullable<boolean | undefined> | Defaults["modelValue"];
    };
    name: unknown extends Defaults["name"] ? StringConstructor : {
        type: PropType<unknown extends Defaults["name"] ? string : string | Defaults["name"]>;
        default: unknown extends Defaults["name"] ? string : string | Defaults["name"];
    };
    position: unknown extends Defaults["position"] ? {
        type: PropType<"fixed" | "absolute">;
        default: string;
    } : Omit<{
        type: PropType<"fixed" | "absolute">;
        default: string;
    }, "type" | "default"> & {
        type: PropType<unknown extends Defaults["position"] ? "fixed" | "absolute" : NonNullable<"fixed" | "absolute"> | Defaults["position"]>;
        default: unknown extends Defaults["position"] ? "fixed" | "absolute" : NonNullable<"fixed" | "absolute"> | Defaults["position"];
    };
    anchor: unknown extends Defaults["anchor"] ? {
        type: PropType<"bottom" | "left" | "right" | "top">;
        default: string;
    } : Omit<{
        type: PropType<"bottom" | "left" | "right" | "top">;
        default: string;
    }, "type" | "default"> & {
        type: PropType<unknown extends Defaults["anchor"] ? "bottom" | "left" | "right" | "top" : NonNullable<"bottom" | "left" | "right" | "top"> | Defaults["anchor"]>;
        default: unknown extends Defaults["anchor"] ? "bottom" | "left" | "right" | "top" : NonNullable<"bottom" | "left" | "right" | "top"> | Defaults["anchor"];
    };
    priority: unknown extends Defaults["priority"] ? {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    } : Omit<{
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    }, "type" | "default"> & {
        type: PropType<unknown extends Defaults["priority"] ? string | number : NonNullable<string | number> | Defaults["priority"]>;
        default: unknown extends Defaults["priority"] ? string | number : NonNullable<string | number> | Defaults["priority"];
    };
};
export declare function useLayoutItem(props: Ref<LayoutItemProps & {
    name?: string;
}>): {
    layoutItemStyles: Ref<Record<string, unknown>>;
    layoutRect: Ref<DOMRectReadOnly | undefined>;
    layoutItemScrimStyles: Ref<Record<string, unknown>>;
};
