import { type Collection, type Server, type ServerPayload } from '@scalar/oas-utils/entities/spec';
import type { StoreContext } from '@/store/store-context';
/** Create storage objects for servers */
export declare function createStoreServers(useLocalStorage: boolean): {
    servers: Record<string, {
        url: string;
        uid: string & import("zod").$brand<"server">;
        description?: string | undefined;
        variables?: Record<string, {
            enum?: string[] | undefined;
            default?: string | undefined;
            description?: string | undefined;
            value?: string | undefined;
        }> | undefined;
    }>;
    serverMutators: {
        add: (item: {
            url: string;
            uid: string & import("zod").$brand<"server">;
            description?: string | undefined;
            variables?: Record<string, {
                enum?: string[] | undefined;
                default?: string | undefined;
                description?: string | undefined;
                value?: string | undefined;
            }> | undefined;
        }) => void;
        delete: (uid: (string & import("zod").$brand<"server">) | null | undefined) => void;
        set: (item: {
            url: string;
            uid: string & import("zod").$brand<"server">;
            description?: string | undefined;
            variables?: Record<string, {
                enum?: string[] | undefined;
                default?: string | undefined;
                description?: string | undefined;
                value?: string | undefined;
            }> | undefined;
        }) => void;
        edit: <P extends "url" | "description" | "uid" | "variables" | `variables.${string}`>(uid: (string & import("zod").$brand<"server">) | null | undefined, path: P, value: P extends "url" | "description" | "uid" | "variables" ? {
            url: string;
            uid: string & import("zod").$brand<"server">;
            description?: string | undefined;
            variables?: Record<string, {
                enum?: string[] | undefined;
                default?: string | undefined;
                description?: string | undefined;
                value?: string | undefined;
            }> | undefined;
        }[P] : P extends `${infer K}.${infer R}` ? K extends "url" | "description" | "uid" | "variables" ? R extends import("@scalar/object-utils/nested").Path<{
            url: string;
            uid: string & import("zod").$brand<"server">;
            description?: string | undefined;
            variables?: Record<string, {
                enum?: string[] | undefined;
                default?: string | undefined;
                description?: string | undefined;
                value?: string | undefined;
            }> | undefined;
        }[K]> ? import("@scalar/object-utils/nested").PathValue<{
            url: string;
            uid: string & import("zod").$brand<"server">;
            description?: string | undefined;
            variables?: Record<string, {
                enum?: string[] | undefined;
                default?: string | undefined;
                description?: string | undefined;
                value?: string | undefined;
            }> | undefined;
        }[K], R> : never : K extends `${number}` ? never : never : P extends `${number}` ? never : never) => void;
        untrackedEdit: <P extends "url" | "description" | "uid" | "variables" | `variables.${string}`>(uid: string & import("zod").$brand<"server">, path: P, value: P extends "url" | "description" | "uid" | "variables" ? {
            url: string;
            uid: string & import("zod").$brand<"server">;
            description?: string | undefined;
            variables?: Record<string, {
                enum?: string[] | undefined;
                default?: string | undefined;
                description?: string | undefined;
                value?: string | undefined;
            }> | undefined;
        }[P] : P extends `${infer K}.${infer R}` ? K extends "url" | "description" | "uid" | "variables" ? R extends import("@scalar/object-utils/nested").Path<{
            url: string;
            uid: string & import("zod").$brand<"server">;
            description?: string | undefined;
            variables?: Record<string, {
                enum?: string[] | undefined;
                default?: string | undefined;
                description?: string | undefined;
                value?: string | undefined;
            }> | undefined;
        }[K]> ? import("@scalar/object-utils/nested").PathValue<{
            url: string;
            uid: string & import("zod").$brand<"server">;
            description?: string | undefined;
            variables?: Record<string, {
                enum?: string[] | undefined;
                default?: string | undefined;
                description?: string | undefined;
                value?: string | undefined;
            }> | undefined;
        }[K], R> : never : K extends `${number}` ? never : never : P extends `${number}` ? never : never) => void;
        undo: (uid: string & import("zod").$brand<"server">) => void;
        redo: (uid: string & import("zod").$brand<"server">) => void;
        reset: () => void;
    };
};
/** Extended mutators and data for servers */
export declare function extendedServerDataFactory({ serverMutators, collections, collectionMutators, requests, requestMutators, }: StoreContext): {
    addServer: (payload: ServerPayload, parentUid: string) => {
        url: string;
        uid: string & import("zod").$brand<"server">;
        description?: string | undefined;
        variables?: Record<string, {
            enum?: string[] | undefined;
            default?: string | undefined;
            description?: string | undefined;
            value?: string | undefined;
        }> | undefined;
    };
    deleteServer: (serverUid: Server["uid"], collectionUid: Collection["uid"]) => void;
};
//# sourceMappingURL=servers.d.ts.map