import { ServerApp, SignalKMessageHub, WithConfig } from '../app';
import DeltaEditor from '../deltaeditor';
export interface Config {
    getExternalHostname: () => string;
    getExternalPort: () => number;
    isExternalSsl: () => boolean;
    port: number;
    appPath: string;
    configPath: string;
    name: string;
    author: string;
    contributors: string[];
    version: string;
    description: string;
    vesselName: string;
    vesselUUID?: string;
    vesselMMSI?: string;
    baseDeltaEditor: DeltaEditor;
    hasOldDefaults: boolean;
    overrideTimestampWithNow: boolean;
    security: boolean;
    settings: {
        useBaseDeltas?: boolean;
        pipedProviders: any[];
        interfaces?: {
            [ifaceName: string]: boolean;
        };
        security?: any;
        ssl?: boolean;
        wsCompression?: boolean;
        wsPingInterval?: number | false;
        accessLogging?: boolean;
        landingPage?: string;
        proxy_host?: string;
        proxy_port?: number;
        proxy_ssl?: boolean;
        hostname?: string;
        pruneContextsMinutes?: number;
        mdns?: boolean;
        sslport?: number;
        port?: number;
        keepMostRecentLogsOnly?: boolean;
        logCountToKeep?: number;
        enablePluginLogging?: boolean;
        loggingDirectory?: string;
        sourcePriorities?: any;
        trustProxy?: boolean | string | number;
        courseApi?: {
            apiOnly?: boolean;
        };
    };
    defaults: object;
}
export interface ConfigApp extends ServerApp, WithConfig, SignalKMessageHub {
    argv: any;
    env: any;
}
export declare function load(app: ConfigApp): void;
export declare function readDefaultsFile(app: ConfigApp): any;
export declare function sendBaseDeltas(app: ConfigApp): void;
export declare function writeDefaultsFile(app: ConfigApp, defaults: any, cb: any): void;
export declare function writeBaseDeltasFileSync(app: ConfigApp): void;
export declare function writeBaseDeltasFile(app: ConfigApp): Promise<void>;
export declare function writeSettingsFile(app: ConfigApp, settings: any, cb: any): void;
//# sourceMappingURL=config.d.ts.map