import { AuthData } from './session';
export declare const DEFAULT_CONFIG_PATH: string;
export declare const USER_CONFIG_PATH: string;
export declare const DEFAULT_CONFIG: ConfigData;
export declare abstract class ConfigManager<T> {
    protected configPath: string;
    protected config: T;
    constructor(filePath: string);
    protected abstract parseConfig(content: string): T;
    protected abstract stringifyConfig(config: T): string;
    protected abstract getDefaultConfig(): T;
    protected ensureConfigFileExists(): void;
    loadConfig(): T;
    saveConfig(): void;
    getConfig(): T;
}
type ConfigSection = Record<string, string>;
type ConfigData = Record<string, ConfigSection>;
export declare class QbraidConfigManager extends ConfigManager<ConfigData> {
    constructor(filePath?: string);
    protected parseConfig(content: string): ConfigData;
    protected stringifyConfig(config: ConfigData): string;
    protected getDefaultConfig(): ConfigData;
    private initializeDefaultConfig;
    private deepMerge;
    getSection(section: string): Record<string, string> | undefined;
    getValue(section: string, key: string): string | undefined;
    setValue(section: string, key: string, value: string): void;
    updateConfig(newConfig: ConfigData): void;
    removeSection(section: string): void;
    removeValue(section: string, key: string): void;
    getApiKey(): string;
    setApiKey(apiKey: string): void;
    getRefreshToken(): string;
    setRefreshToken(refreshToken: string): void;
    getEmail(): string;
    setEmail(email: string): void;
    getUrl(): string;
    setUrl(url: string): void;
    getAuthData(): AuthData;
}
export {};
