import type { GatewaySurface } from '../gateway/types.js';
import type { YagrModelProvider } from '../llm/provider-registry.js';
export declare function normalizeGatewaySurfaces(surfaces: readonly string[] | undefined): GatewaySurface[];
export interface YagrTelegramLinkedChat {
    chatId: string;
    userId?: string;
    username?: string;
    firstName?: string;
    linkedAt: string;
    lastSeenAt?: string;
}
export interface YagrTelegramConfig {
    botUsername?: string;
    onboardingToken?: string;
    linkedChats?: YagrTelegramLinkedChat[];
}
export interface YagrGatewayConfig {
    enabledSurfaces?: GatewaySurface[];
    webui?: {
        host?: string;
        port?: number;
    };
}
export interface YagrLocalConfig {
    provider?: YagrModelProvider;
    model?: string;
    baseUrl?: string;
    gateway?: YagrGatewayConfig;
    telegram?: YagrTelegramConfig;
}
export declare class YagrConfigService {
    private readonly globalStore;
    private readonly localConfigPath;
    private readonly legacyCredentialsPath;
    constructor();
    getLocalConfig(): YagrLocalConfig;
    saveLocalConfig(config: YagrLocalConfig): void;
    updateLocalConfig(updater: (config: YagrLocalConfig) => YagrLocalConfig): YagrLocalConfig;
    getEnabledGatewaySurfaces(): GatewaySurface[];
    setEnabledGatewaySurfaces(surfaces: GatewaySurface[]): YagrLocalConfig;
    enableGatewaySurface(surface: GatewaySurface): YagrLocalConfig;
    disableGatewaySurface(surface: GatewaySurface): YagrLocalConfig;
    getApiKey(provider: YagrModelProvider): string | undefined;
    saveApiKey(provider: YagrModelProvider, apiKey: string): void;
    hasApiKey(provider: YagrModelProvider): boolean;
    clearLocalConfig(): void;
    clearAllApiKeys(): void;
    getTelegramBotToken(): string | undefined;
    saveTelegramBotToken(botToken: string): void;
    clearTelegramBotToken(): void;
    private migrateLegacyCredentials;
}
//# sourceMappingURL=yagr-config-service.d.ts.map