import convict from 'convict';
declare const config: convict.Config<{
    database: {
        type: string;
        tablePrefix: string;
        logging: {
            enabled: boolean;
            options: string;
            maxQueryExecutionTime: number;
        };
        postgresdb: {
            database: string;
            host: string;
            password: string;
            port: number;
            user: string;
            schema: string;
            poolSize: number;
            ssl: {
                enabled: boolean;
                ca: string;
                cert: string;
                key: string;
                rejectUnauthorized: boolean;
            };
        };
        mysqldb: {
            database: string;
            host: string;
            password: string;
            port: number;
            user: string;
        };
        sqlite: {
            database: string;
            enableWAL: boolean;
            poolSize: number;
            executeVacuumOnStartup: boolean;
        };
    };
    credentials: {
        overwrite: {
            data: string;
            endpoint: string;
        };
        defaultName: string;
    };
    workflows: {
        defaultName: string;
        onboardingFlowDisabled: boolean;
        callerPolicyDefaultOption: string;
    };
    executions: {
        process: string;
        mode: string;
        timeout: number;
        maxTimeout: number;
        saveDataOnError: string;
        saveDataOnSuccess: string;
        saveExecutionProgress: boolean;
        saveDataManualExecutions: boolean;
        pruneData: boolean;
        pruneDataMaxAge: number;
        pruneDataHardDeleteBuffer: number;
        pruneDataIntervals: {
            hardDelete: number;
            softDelete: number;
        };
        pruneDataMaxCount: number;
    };
    queue: {
        health: {
            active: boolean;
            port: number;
        };
        bull: {
            prefix: string;
            redis: {
                db: number;
                host: string;
                password: string;
                port: number;
                timeoutThreshold: number;
                username: string;
                clusterNodes: string;
                tls: boolean;
            };
            queueRecoveryInterval: number;
            gracefulShutdownTimeout: number;
            settings: {
                lockDuration: number;
                lockRenewTime: number;
                stalledInterval: number;
                maxStalledCount: number;
            };
        };
    };
    generic: {
        timezone: string;
        instanceType: string;
        releaseChannel: string;
        gracefulShutdownTimeout: number;
    };
    path: string;
    host: string;
    port: number;
    listen_address: string;
    protocol: string;
    secure_cookie: boolean;
    ssl_key: string;
    ssl_cert: string;
    editorBaseUrl: string;
    security: {
        restrictFileAccessTo: string;
        blockFileAccessToN8nFiles: boolean;
        audit: {
            daysAbandonedWorkflow: number;
        };
    };
    endpoints: {
        payloadSizeMax: number;
        metrics: {
            enable: boolean;
            prefix: string;
            includeDefaultMetrics: boolean;
            includeWorkflowIdLabel: boolean;
            includeNodeTypeLabel: boolean;
            includeCredentialTypeLabel: boolean;
            includeApiEndpoints: boolean;
            includeApiPathLabel: boolean;
            includeApiMethodLabel: boolean;
            includeApiStatusCodeLabel: boolean;
            includeCacheMetrics: boolean;
            includeMessageEventBusMetrics: boolean;
        };
        rest: string;
        form: string;
        formTest: string;
        formWaiting: string;
        webhook: string;
        webhookWaiting: string;
        webhookTest: string;
        disableUi: boolean;
        disableProductionWebhooksOnMainProcess: boolean;
        additionalNonUIRoutes: string;
    };
    publicApi: {
        disabled: boolean;
        path: string;
        swaggerUi: {
            disabled: boolean;
        };
    };
    workflowTagsDisabled: boolean;
    userManagement: {
        jwtSecret: string;
        jwtSessionDurationHours: number;
        jwtRefreshTimeoutHours: number;
        isInstanceOwnerSetUp: boolean;
        emails: {
            mode: string;
            smtp: {
                host: string;
                port: number;
                secure: boolean;
                startTLS: boolean;
                auth: {
                    user: string;
                    pass: string;
                    serviceClient: string;
                    privateKey: string;
                };
                sender: string;
            };
            templates: {
                invite: string;
                passwordReset: string;
                workflowShared: string;
                credentialsShared: string;
            };
        };
        authenticationMethod: string;
    };
    externalFrontendHooksUrls: string;
    externalHookFiles: string;
    nodes: {
        include: undefined;
        exclude: undefined;
        errorTriggerType: string;
        communityPackages: {
            enabled: boolean;
        };
    };
    logs: {
        level: string;
        output: string;
        file: {
            fileCountMax: number;
            fileSizeMax: number;
            location: string;
        };
    };
    versionNotifications: {
        enabled: boolean;
        endpoint: string;
        infoUrl: string;
    };
    templates: {
        enabled: boolean;
        host: string;
    };
    push: {
        backend: string;
    };
    binaryDataManager: {
        availableModes: string;
        mode: string;
        localStoragePath: string;
    };
    externalStorage: {
        s3: {
            host: string;
            bucket: {
                name: string;
                region: string;
            };
            credentials: {
                accessKey: string;
                accessSecret: string;
            };
        };
    };
    externalSecrets: {
        updateInterval: number;
        preferGet: boolean;
    };
    deployment: {
        type: string;
    };
    mfa: {
        enabled: boolean;
    };
    sso: {
        justInTimeProvisioning: boolean;
        redirectLoginToSso: boolean;
        saml: {
            loginEnabled: boolean;
            loginLabel: string;
        };
        ldap: {
            loginEnabled: boolean;
            loginLabel: string;
        };
    };
    hiringBanner: {
        enabled: boolean;
    };
    personalization: {
        enabled: boolean;
    };
    diagnostics: {
        enabled: boolean;
        config: {
            posthog: {
                apiKey: string;
                apiHost: string;
            };
            sentry: {
                dsn: string;
            };
            frontend: string;
            backend: string;
        };
    };
    defaultLocale: string;
    onboardingCallPrompt: {
        enabled: boolean;
    };
    license: {
        serverUrl: string;
        autoRenewEnabled: boolean;
        autoRenewOffset: number;
        activationKey: string;
        tenantId: number;
        cert: string;
    };
    hideUsagePage: boolean;
    eventBus: {
        checkUnsentInterval: number;
        logWriter: {
            keepLogCount: number;
            maxFileSizeInKB: number;
            logBaseName: string;
        };
        crashRecoveryMode: string;
    };
    redis: {
        prefix: string;
        queueModeId: string;
    };
    cache: {
        backend: string;
        memory: {
            maxSize: number;
            ttl: number;
        };
        redis: {
            prefix: string;
            ttl: number;
        };
    };
    ai: {
        enabled: boolean;
        provider: string;
        openAI: {
            apiKey: string;
            model: string;
        };
        pinecone: {
            apiKey: string;
        };
    };
    expression: {
        evaluator: string;
        reportDifference: boolean;
    };
    sourceControl: {
        defaultKeyPairType: string;
    };
    workflowHistory: {
        enabled: boolean;
        pruneTime: number;
    };
    multiMainSetup: {
        instanceType: string;
        enabled: boolean;
        ttl: number;
        interval: number;
    };
    proxy_hops: number;
}>;
export default config;
