import { JSONSchemaType } from 'ajv';
import { SystemId } from '../constants';
import { SshSpawner } from '../util';
export declare const SYSTEM_IDS: ("local" | "development" | "qa" | "production")[];
export declare type AaiConfig = {
    systemId: SystemId;
};
export declare const aaiConfigSchema: JSONSchemaType<AaiConfig>;
declare function AaiConfigFile(baseDir?: string): import("@alwaysai/config-nodejs").ConfigFileSchemaReturnType<AaiConfig>;
declare type AaiConfigFileReturnType = ReturnType<typeof AaiConfigFile>;
declare abstract class AaiCfg {
    aaiConfigFile: AaiConfigFileReturnType;
    baseDir: string;
    fullPath: string;
    constructor(baseDir: string);
    writeAaiCfgFile(): void;
    readAaiCfgFile(): void;
    getFileName(): string;
}
export declare class LocalAaiCfg extends AaiCfg {
    aaiConfigFile: AaiConfigFileReturnType;
    baseDir: string;
    constructor(baseDir?: string);
    getValidationErrors(): Promise<import("ajv").ErrorObject<string, Record<string, any>, unknown>[] | null | undefined>;
    writeAaiCfgFile(): Promise<void>;
    readAaiCfgFile(): Promise<AaiConfig>;
    getFileName(): string;
}
export declare class RemoteAaiCfg extends AaiCfg {
    aaiConfigFile: AaiConfigFileReturnType;
    baseDir: string;
    fullPath: string;
    spawner: SshSpawner;
    constructor(targetHostName: string, baseDir?: string);
    s: any;
    private validate;
    writeAaiCfgFile(): Promise<void>;
    getValidationErrors(): Promise<import("ajv").ErrorObject<string, Record<string, any>, unknown>[] | null | undefined>;
    readAaiCfgFile(): Promise<AaiConfig>;
}
export declare function setSystemId(systemId: SystemId): import("@alwaysai/config-nodejs/lib/config-file-schema").InfoType;
export declare function getSystemId(): "local" | "development" | "qa" | "production";
export {};
//# sourceMappingURL=system-id.d.ts.map