export interface DataSourceConfig {
    type: 'zabbix' | 'argus';
    uid: string;
    url: string;
    token: string;
    name: string;
    default?: boolean;
}
export interface PresetItem {
    label: string;
    config: string;
}
export interface ArgusBoardConfig {
    hideHeader: boolean;
    canEdit: boolean;
    theme: 'dark' | 'light' | null;
    lang: 'zh' | 'en' | null;
    isEditing: boolean | null;
    initialEditingPanelId: string | null;
    datasourceConfig: DataSourceConfig[] | null;
    initialConfig?: string | Record<string, any>;
    renderDefaultDashboard?: boolean;
    onSave?: (json: string) => void;
    presets?: PresetItem[];
}
export declare function provideArgusBoardConfig(getConfig: () => ArgusBoardConfig): {
    config: Readonly<import("vue").Ref<{
        readonly hideHeader: boolean;
        readonly canEdit: boolean;
        readonly theme: "dark" | "light" | null;
        readonly lang: "zh" | "en" | null;
        readonly isEditing: boolean | null;
        readonly initialEditingPanelId: string | null;
        readonly datasourceConfig: readonly {
            readonly type: "zabbix" | "argus";
            readonly uid: string;
            readonly url: string;
            readonly token: string;
            readonly name: string;
            readonly default?: boolean | undefined;
        }[] | null;
        readonly initialConfig?: string | {
            readonly [x: string]: any;
        } | undefined;
        readonly renderDefaultDashboard?: boolean | undefined;
        readonly onSave?: ((json: string) => void) | undefined;
        readonly presets?: readonly {
            readonly label: string;
            readonly config: string;
        }[] | undefined;
    }, {
        readonly hideHeader: boolean;
        readonly canEdit: boolean;
        readonly theme: "dark" | "light" | null;
        readonly lang: "zh" | "en" | null;
        readonly isEditing: boolean | null;
        readonly initialEditingPanelId: string | null;
        readonly datasourceConfig: readonly {
            readonly type: "zabbix" | "argus";
            readonly uid: string;
            readonly url: string;
            readonly token: string;
            readonly name: string;
            readonly default?: boolean | undefined;
        }[] | null;
        readonly initialConfig?: string | {
            readonly [x: string]: any;
        } | undefined;
        readonly renderDefaultDashboard?: boolean | undefined;
        readonly onSave?: ((json: string) => void) | undefined;
        readonly presets?: readonly {
            readonly label: string;
            readonly config: string;
        }[] | undefined;
    }>>;
};
export declare function useArgusBoardConfig(): {
    config: Readonly<import("vue").Ref<{
        readonly hideHeader: boolean;
        readonly canEdit: boolean;
        readonly theme: "dark" | "light" | null;
        readonly lang: "zh" | "en" | null;
        readonly isEditing: boolean | null;
        readonly initialEditingPanelId: string | null;
        readonly datasourceConfig: readonly {
            readonly type: "zabbix" | "argus";
            readonly uid: string;
            readonly url: string;
            readonly token: string;
            readonly name: string;
            readonly default?: boolean | undefined;
        }[] | null;
        readonly initialConfig?: string | {
            readonly [x: string]: any;
        } | undefined;
        readonly renderDefaultDashboard?: boolean | undefined;
        readonly onSave?: ((json: string) => void) | undefined;
        readonly presets?: readonly {
            readonly label: string;
            readonly config: string;
        }[] | undefined;
    }, {
        readonly hideHeader: boolean;
        readonly canEdit: boolean;
        readonly theme: "dark" | "light" | null;
        readonly lang: "zh" | "en" | null;
        readonly isEditing: boolean | null;
        readonly initialEditingPanelId: string | null;
        readonly datasourceConfig: readonly {
            readonly type: "zabbix" | "argus";
            readonly uid: string;
            readonly url: string;
            readonly token: string;
            readonly name: string;
            readonly default?: boolean | undefined;
        }[] | null;
        readonly initialConfig?: string | {
            readonly [x: string]: any;
        } | undefined;
        readonly renderDefaultDashboard?: boolean | undefined;
        readonly onSave?: ((json: string) => void) | undefined;
        readonly presets?: readonly {
            readonly label: string;
            readonly config: string;
        }[] | undefined;
    }>>;
};
