import { type LayoutSetValue } from '../../share/layout.js';
declare const __VLS_export: <TItem extends {
    id: string;
    type: string;
    compatibilityDate: string;
}>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
    props: import("vue").PublicProps & __VLS_PrettifyLocal<({
        items: ReadonlyArray<TItem>;
        findEntry: (type: string, compatibilityDate: string) => Readonly<{
            metadata: Readonly<{
                name: string;
                icon: string;
                w: Readonly<{
                    initial: number;
                    min: number;
                    max: number;
                }>;
                h: Readonly<{
                    initial: number;
                    min: number;
                    max: number;
                }>;
                /**
                 * When `false`, this item opts out of the fullscreen inline-config pane —
                 * a drill request falls back to emitting `drill-down` (which exits
                 * fullscreen). Absent / `true` → inline editing is offered while the host
                 * provides the `inline-config` slot. See the "Inline config" section below.
                 */
                inlineConfig?: boolean;
            }>;
        }> | undefined;
        getItemLabel?: (item: TItem) => string;
        /** Localized label for the picker placeholder / fallback texts. */
        itemNoun?: string;
        /**
         * When provided, the bottom-right picker shows a "组件" group enabling
         * "add new item" from inside the editor (host decides instantiation).
         */
        pickerEntries?: ReadonlyArray<Readonly<{
            type: string;
            compatibilityDate: string;
            name: string;
            icon: string;
        }>>;
        /** When true, the per-item context menu shows a "彻底删除" entry that emits delete-item. */
        canDelete?: boolean;
    } & {
        modelValue: LayoutSetValue[];
        activeIndex?: number;
        selectedItemIds?: string[];
    }) & {
        onPaste?: ((target: {
            x: number;
            y: number;
        } | null) => any) | undefined;
        "onUpdate:modelValue"?: ((value: Readonly<{
            name: string;
            media?: string;
            layout: import("../form/schema.js").LayoutValue;
        }>[]) => any) | undefined;
        "onAdd-new"?: ((entry: Readonly<{
            type: string;
            compatibilityDate: string;
            name: string;
            icon: string;
        }>, options: {
            silent: boolean;
        }) => any) | undefined;
        "onDrill-down"?: ((itemId: string) => any) | undefined;
        "onDelete-item"?: ((itemId: string) => any) | undefined;
        "onDelete-items"?: ((itemIds: string[]) => any) | undefined;
        "onCopy-items"?: ((itemIds: string[]) => any) | undefined;
        "onUpdate:activeIndex"?: ((value: number) => any) | undefined;
        "onUpdate:selectedItemIds"?: ((value: string[]) => any) | undefined;
    }> & (typeof globalThis extends {
        __VLS_PROPS_FALLBACK: infer P;
    } ? P : {});
    expose: (exposed: {}) => void;
    attrs: any;
    slots: {
        /**
         * Body of the right-docked config pane shown when a field is opened inline
         * in fullscreen. Rendered inside the fullscreen element so editing doesn't
         * unmount the canvas. Receives the item being edited and a `close` hook.
         */
        'inline-config'(props: {
            itemId: string;
            item: TItem;
            close: () => void;
        }): unknown;
    };
    emit: (((evt: "paste", target: {
        x: number;
        y: number;
    } | null) => void) & ((evt: "add-new", entry: Readonly<{
        type: string;
        compatibilityDate: string;
        name: string;
        icon: string;
    }>, options: {
        silent: boolean;
    }) => void) & ((evt: "drill-down", itemId: string) => void) & ((evt: "delete-item", itemId: string) => void) & ((evt: "delete-items", itemIds: string[]) => void) & ((evt: "copy-items", itemIds: string[]) => void)) & (((event: "update:modelValue", value: Readonly<{
        name: string;
        media?: string;
        layout: import("../form/schema.js").LayoutValue;
    }>[]) => void) & ((event: "update:activeIndex", value: number) => void) & ((event: "update:selectedItemIds", value: string[]) => void));
}>) => import("vue").VNode & {
    __ctx?: Awaited<typeof __VLS_setup>;
};
declare const _default: typeof __VLS_export;
export default _default;
type __VLS_PrettifyLocal<T> = (T extends any ? {
    [K in keyof T]: T[K];
} : {
    [K in keyof T as K]: T[K];
}) & {};
