import { CoreModels, UtilsOs } from 'tnp-core';
import { BaseDb } from './classes/base-db';
import type { BaseProjectResolver } from './classes/base-project-resolver';
declare const defaultDb: {
    config: {
        [key: string]: string | number | boolean | null;
    };
};
export declare abstract class ConfigDatabaseEx<T = object> {
    protected KEY_PATH_DB: string;
    protected configDb: ConfigDatabase;
    constructor(KEY_PATH_DB: string, configDb: ConfigDatabase);
    getValue(): Promise<T | undefined>;
    setValue(v: T): Promise<T>;
    protected selectOneValue(arrOfValues: string[], question?: string): Promise<string>;
}
export declare class CodeEditorConfig extends ConfigDatabaseEx<UtilsOs.Editor> {
    getValue(): Promise<UtilsOs.Editor>;
    selectCodeEditor(): Promise<UtilsOs.Editor>;
}
export declare class SshHttpsPreferenceConfig extends ConfigDatabaseEx<CoreModels.GitConnection> {
    getValue(): Promise<CoreModels.GitConnection>;
    selectHttpOrSsh(): Promise<CoreModels.GitConnection>;
}
export declare class ConfigDatabase extends BaseDb<typeof defaultDb> {
    constructor(ins: BaseProjectResolver);
    codeEditor: CodeEditorConfig;
    httpOrHttps: CodeEditorConfig;
}
export {};