import { IDatabaseConfig } from './IDatabaseConfig';
import { LogLevel } from '@arashi/interfaces';
export interface ICloudwatchCredentials {
    accessKeyId: string;
    secretAccessKey: string;
}
export interface ICloudwatchStreamConfig {
    group: string;
    name: string;
}
export interface ICloudwatchConfig {
    region: string;
    credentials: ICloudwatchCredentials;
    stream: ICloudwatchStreamConfig;
}
export interface IConfig {
    bind?: string;
    port?: number;
    authentication_header?: string;
    backend_authentication_header?: string;
    backend_authentication_secret?: string;
    log?: {
        level?: LogLevel;
        filters?: string[];
        cloudwatch?: ICloudwatchConfig;
    };
    database?: {
        query_timeout?: number;
        main?: IDatabaseConfig<"MASTER">;
        replicationNodes?: IDatabaseConfig[];
    };
    request_size_limit?: number;
    customConfig?: Record<string, any>;
}
