import type { GptClientFactory } from '../clients/GptClientFactory';
import type { GptConfigInput } from '../models/GptConfig';
import type { GptConfigsPersistence } from '../persistence/gptconfigs/GptConfigsPersistence';
/**
 * This class manages GPT configs and is responsible for validation around
 * that context.
 */
export declare class GptConfigsManager {
    private readonly persistence;
    private readonly gptClientFactory;
    private constructor();
    static create(persistence: GptConfigsPersistence, gptClientFactory: GptClientFactory): Promise<GptConfigsManager>;
    /**
     * Attempt to save the given GPT config. Where possible, a zero-cost
     * request is attempted to be made with the GPT config before saving it.
     * If the zero-cost request is attempted and it fails, this method throws.
     */
    set(name: string, config: GptConfigInput): Promise<void>;
    /**
     * Fetch a GPT config by name.
     */
    get(name: string): Promise<GptConfigInput>;
    /**
     * Fetch all GPT configs.
     */
    getAll(): Promise<Map<string, GptConfigInput>>;
    /**
     * Delete a GPT config by name.
     */
    delete(name: string): Promise<void>;
    /**
     * Verifies the given GPT config and name or throws if they are invalid.
     */
    private verifyGptConfigOrThrow;
}
//# sourceMappingURL=GptConfigsManager.d.ts.map