import type { ResolvedVariables, VariableConfig, VariableOption, VariableState } from '../_core';
export type OptionsResolver = (query: string) => Promise<VariableOption[]>;
export declare const useVariableStore: import("pinia").StoreDefinition<"variable", Pick<{
    variables: import("vue").Ref<Record<string, VariableState>, Record<string, VariableState>>;
    optionsResolver: import("vue").Ref<OptionsResolver | null, OptionsResolver | null>;
    setOptionsResolver: (resolver: OptionsResolver) => void;
    addVariable: (config: VariableConfig) => void;
    removeVariable: (id: string) => void;
    updateVariable: (id: string, patch: Partial<VariableConfig>) => void;
    setValue: (id: string, value: string | string[]) => void;
    refreshVariable: (id: string) => Promise<void>;
    refreshAll: () => Promise<void>;
    resolveAll: () => ResolvedVariables;
    getVariable: (name: string) => VariableState | undefined;
    getDependents: (name: string) => string[];
    detectCycle: () => string[] | null;
}, "variables" | "optionsResolver">, Pick<{
    variables: import("vue").Ref<Record<string, VariableState>, Record<string, VariableState>>;
    optionsResolver: import("vue").Ref<OptionsResolver | null, OptionsResolver | null>;
    setOptionsResolver: (resolver: OptionsResolver) => void;
    addVariable: (config: VariableConfig) => void;
    removeVariable: (id: string) => void;
    updateVariable: (id: string, patch: Partial<VariableConfig>) => void;
    setValue: (id: string, value: string | string[]) => void;
    refreshVariable: (id: string) => Promise<void>;
    refreshAll: () => Promise<void>;
    resolveAll: () => ResolvedVariables;
    getVariable: (name: string) => VariableState | undefined;
    getDependents: (name: string) => string[];
    detectCycle: () => string[] | null;
}, never>, Pick<{
    variables: import("vue").Ref<Record<string, VariableState>, Record<string, VariableState>>;
    optionsResolver: import("vue").Ref<OptionsResolver | null, OptionsResolver | null>;
    setOptionsResolver: (resolver: OptionsResolver) => void;
    addVariable: (config: VariableConfig) => void;
    removeVariable: (id: string) => void;
    updateVariable: (id: string, patch: Partial<VariableConfig>) => void;
    setValue: (id: string, value: string | string[]) => void;
    refreshVariable: (id: string) => Promise<void>;
    refreshAll: () => Promise<void>;
    resolveAll: () => ResolvedVariables;
    getVariable: (name: string) => VariableState | undefined;
    getDependents: (name: string) => string[];
    detectCycle: () => string[] | null;
}, "setOptionsResolver" | "addVariable" | "removeVariable" | "updateVariable" | "setValue" | "refreshVariable" | "refreshAll" | "resolveAll" | "getVariable" | "getDependents" | "detectCycle">>;
