import { BuilderSchema } from './formBuilderStore';
/**
 * State for a single PresetBuilder instance. Multiple PresetBuilders
 * can coexist on a page; each is keyed by `builderId`.
 *
 * A preset bundles a name + optional description with an inner
 * FormBuilder-style `BuilderSchema`. The inner schema is owned by
 * `formBuilderStore`; this store only tracks the metadata + a reference
 * to the inner builder id, so the inspector / canvas can read & write
 * the preset name / description without round-tripping through the
 * inner FormBuilder.
 */
export interface PresetBuilderSchema {
    presetName: string;
    presetDescription?: string;
    schema: BuilderSchema;
}
export interface PresetBuilderState {
    presetName: string;
    presetDescription: string;
    /** Id of the inner FormBuilder schema stored in `formBuilderStore`. */
    innerBuilderId: string;
}
/** Test helper to make ids deterministic. */
export declare function __resetPresetBuilderIdCounter(): void;
export declare const usePresetBuilderStore: import('pinia').StoreDefinition<"gx-modui/presetBuilder", Pick<{
    builders: import('vue').Ref<Record<string, PresetBuilderState>, Record<string, PresetBuilderState>>;
    ensureBuilder: (builderId: string) => PresetBuilderState;
    getState: (builderId: string) => PresetBuilderState;
    setName: (builderId: string, name: string) => void;
    setDescription: (builderId: string, description: string) => void;
    resetBuilder: (builderId: string) => void;
    loadMeta: (builderId: string, meta: Pick<PresetBuilderSchema, "presetName" | "presetDescription">) => void;
}, "builders">, Pick<{
    builders: import('vue').Ref<Record<string, PresetBuilderState>, Record<string, PresetBuilderState>>;
    ensureBuilder: (builderId: string) => PresetBuilderState;
    getState: (builderId: string) => PresetBuilderState;
    setName: (builderId: string, name: string) => void;
    setDescription: (builderId: string, description: string) => void;
    resetBuilder: (builderId: string) => void;
    loadMeta: (builderId: string, meta: Pick<PresetBuilderSchema, "presetName" | "presetDescription">) => void;
}, never>, Pick<{
    builders: import('vue').Ref<Record<string, PresetBuilderState>, Record<string, PresetBuilderState>>;
    ensureBuilder: (builderId: string) => PresetBuilderState;
    getState: (builderId: string) => PresetBuilderState;
    setName: (builderId: string, name: string) => void;
    setDescription: (builderId: string, description: string) => void;
    resetBuilder: (builderId: string) => void;
    loadMeta: (builderId: string, meta: Pick<PresetBuilderSchema, "presetName" | "presetDescription">) => void;
}, "ensureBuilder" | "resetBuilder" | "getState" | "setName" | "setDescription" | "loadMeta">>;
/** Composable wrapper around `usePresetBuilderStore` for one builder. */
export declare function usePresetBuilder(builderId: string): {
    state: import('vue').ComputedRef<PresetBuilderState>;
    setName: (name: string) => void;
    setDescription: (description: string) => void;
    loadMeta: (meta: Pick<PresetBuilderSchema, "presetName" | "presetDescription">) => void;
    reset: () => void;
};
//# sourceMappingURL=presetBuilderStore.d.ts.map