import { VideoRedundancyConfigFilter } from '../../shared/models/redundancy/video-redundancy-config-filter.type';
import { BroadcastMessageLevel } from '../../shared/models/server';
import { VideoPrivacy, VideosRedundancyStrategy } from '../../shared/models';
import { NSFWPolicyType } from '../../shared/models/videos/nsfw-policy.type';
declare const CONFIG: {
    CUSTOM_FILE: string;
    LISTEN: {
        PORT: number;
        HOSTNAME: string;
    };
    SECRETS: {
        PEERTUBE: string;
    };
    DATABASE: {
        DBNAME: string;
        HOSTNAME: string;
        PORT: number;
        SSL: boolean;
        USERNAME: string;
        PASSWORD: string;
        POOL: {
            MAX: number;
        };
    };
    REDIS: {
        HOSTNAME: string;
        PORT: number;
        SOCKET: string;
        AUTH: string;
        DB: number;
    };
    SMTP: {
        TRANSPORT: string;
        SENDMAIL: string;
        HOSTNAME: string;
        PORT: number;
        USERNAME: string;
        PASSWORD: string;
        TLS: boolean;
        DISABLE_STARTTLS: boolean;
        CA_FILE: string;
        FROM_ADDRESS: string;
    };
    EMAIL: {
        BODY: {
            SIGNATURE: string;
        };
        SUBJECT: {
            PREFIX: string;
        };
    };
    CLIENT: {
        VIDEOS: {
            MINIATURE: {
                readonly PREFER_AUTHOR_DISPLAY_NAME: boolean;
                readonly DISPLAY_AUTHOR_AVATAR: boolean;
            };
            RESUMABLE_UPLOAD: {
                readonly MAX_CHUNK_SIZE: number;
            };
        };
        MENU: {
            LOGIN: {
                readonly REDIRECT_ON_SINGLE_EXTERNAL_AUTH: boolean;
            };
        };
    };
    DEFAULTS: {
        PUBLISH: {
            DOWNLOAD_ENABLED: boolean;
            COMMENTS_ENABLED: boolean;
            PRIVACY: VideoPrivacy;
            LICENCE: number;
        };
        P2P: {
            WEBAPP: {
                ENABLED: boolean;
            };
            EMBED: {
                ENABLED: boolean;
            };
        };
    };
    STORAGE: {
        TMP_DIR: string;
        BIN_DIR: string;
        ACTOR_IMAGES: string;
        LOG_DIR: string;
        VIDEOS_DIR: string;
        STREAMING_PLAYLISTS_DIR: string;
        REDUNDANCY_DIR: string;
        THUMBNAILS_DIR: string;
        PREVIEWS_DIR: string;
        CAPTIONS_DIR: string;
        TORRENTS_DIR: string;
        CACHE_DIR: string;
        PLUGINS_DIR: string;
        CLIENT_OVERRIDES_DIR: string;
        WELL_KNOWN_DIR: string;
    };
    STATIC_FILES: {
        PRIVATE_FILES_REQUIRE_AUTH: boolean;
    };
    OBJECT_STORAGE: {
        ENABLED: boolean;
        MAX_UPLOAD_PART: number;
        ENDPOINT: string;
        REGION: string;
        UPLOAD_ACL: {
            PUBLIC: string;
            PRIVATE: string;
        };
        CREDENTIALS: {
            ACCESS_KEY_ID: string;
            SECRET_ACCESS_KEY: string;
        };
        PROXY: {
            PROXIFY_PRIVATE_FILES: boolean;
        };
        VIDEOS: {
            BUCKET_NAME: string;
            PREFIX: string;
            BASE_URL: string;
        };
        STREAMING_PLAYLISTS: {
            BUCKET_NAME: string;
            PREFIX: string;
            BASE_URL: string;
        };
    };
    WEBSERVER: {
        SCHEME: string;
        WS: string;
        HOSTNAME: string;
        PORT: number;
    };
    RATES_LIMIT: {
        API: {
            WINDOW_MS: number;
            MAX: number;
        };
        SIGNUP: {
            WINDOW_MS: number;
            MAX: number;
        };
        LOGIN: {
            WINDOW_MS: number;
            MAX: number;
        };
        RECEIVE_CLIENT_LOG: {
            WINDOW_MS: number;
            MAX: number;
        };
        ASK_SEND_EMAIL: {
            WINDOW_MS: number;
            MAX: number;
        };
    };
    TRUST_PROXY: string[];
    LOG: {
        LEVEL: string;
        ROTATION: {
            ENABLED: boolean;
            MAX_FILE_SIZE: number;
            MAX_FILES: number;
        };
        ANONYMIZE_IP: boolean;
        LOG_PING_REQUESTS: boolean;
        LOG_TRACKER_UNKNOWN_INFOHASH: boolean;
        PRETTIFY_SQL: boolean;
        ACCEPT_CLIENT_LOG: boolean;
    };
    OPEN_TELEMETRY: {
        METRICS: {
            ENABLED: boolean;
            PROMETHEUS_EXPORTER: {
                HOSTNAME: string;
                PORT: number;
            };
        };
        TRACING: {
            ENABLED: boolean;
            JAEGER_EXPORTER: {
                ENDPOINT: string;
            };
        };
    };
    TRENDING: {
        VIDEOS: {
            INTERVAL_DAYS: number;
            ALGORITHMS: {
                readonly ENABLED: string[];
                readonly DEFAULT: string;
            };
        };
    };
    REDUNDANCY: {
        VIDEOS: {
            CHECK_INTERVAL: number;
            STRATEGIES: VideosRedundancyStrategy[];
        };
    };
    REMOTE_REDUNDANCY: {
        VIDEOS: {
            ACCEPT_FROM: VideoRedundancyConfigFilter;
        };
    };
    CSP: {
        ENABLED: boolean;
        REPORT_ONLY: boolean;
        REPORT_URI: string;
    };
    SECURITY: {
        FRAMEGUARD: {
            ENABLED: boolean;
        };
    };
    TRACKER: {
        ENABLED: boolean;
        PRIVATE: boolean;
        REJECT_TOO_MANY_ANNOUNCES: boolean;
    };
    HISTORY: {
        VIDEOS: {
            MAX_AGE: number;
        };
    };
    VIEWS: {
        VIDEOS: {
            REMOTE: {
                MAX_AGE: number;
            };
            LOCAL_BUFFER_UPDATE_INTERVAL: number;
            IP_VIEW_EXPIRATION: number;
        };
    };
    GEO_IP: {
        ENABLED: boolean;
        COUNTRY: {
            DATABASE_URL: string;
        };
    };
    PLUGINS: {
        INDEX: {
            ENABLED: boolean;
            CHECK_LATEST_VERSIONS_INTERVAL: number;
            URL: string;
        };
    };
    FEDERATION: {
        VIDEOS: {
            FEDERATE_UNLISTED: boolean;
            CLEANUP_REMOTE_INTERACTIONS: boolean;
        };
    };
    PEERTUBE: {
        CHECK_LATEST_VERSION: {
            ENABLED: boolean;
            URL: string;
        };
    };
    WEBADMIN: {
        CONFIGURATION: {
            EDITION: {
                ALLOWED: boolean;
            };
        };
    };
    FEEDS: {
        VIDEOS: {
            COUNT: number;
        };
        COMMENTS: {
            COUNT: number;
        };
    };
    ADMIN: {
        readonly EMAIL: string;
    };
    CONTACT_FORM: {
        readonly ENABLED: boolean;
    };
    SIGNUP: {
        readonly ENABLED: boolean;
        readonly LIMIT: number;
        readonly REQUIRES_EMAIL_VERIFICATION: boolean;
        readonly MINIMUM_AGE: number;
        FILTERS: {
            CIDR: {
                readonly WHITELIST: string[];
                readonly BLACKLIST: string[];
            };
        };
    };
    USER: {
        readonly VIDEO_QUOTA: number;
        readonly VIDEO_QUOTA_DAILY: number;
    };
    VIDEO_CHANNELS: {
        readonly MAX_PER_USER: number;
    };
    TRANSCODING: {
        readonly ENABLED: boolean;
        readonly ALLOW_ADDITIONAL_EXTENSIONS: boolean;
        readonly ALLOW_AUDIO_FILES: boolean;
        readonly THREADS: number;
        readonly CONCURRENCY: number;
        readonly PROFILE: string;
        readonly ALWAYS_TRANSCODE_ORIGINAL_RESOLUTION: boolean;
        RESOLUTIONS: {
            readonly '0p': boolean;
            readonly '144p': boolean;
            readonly '240p': boolean;
            readonly '360p': boolean;
            readonly '480p': boolean;
            readonly '720p': boolean;
            readonly '1080p': boolean;
            readonly '1440p': boolean;
            readonly '2160p': boolean;
        };
        HLS: {
            readonly ENABLED: boolean;
        };
        WEBTORRENT: {
            readonly ENABLED: boolean;
        };
    };
    LIVE: {
        readonly ENABLED: boolean;
        readonly MAX_DURATION: number;
        readonly MAX_INSTANCE_LIVES: number;
        readonly MAX_USER_LIVES: number;
        readonly ALLOW_REPLAY: boolean;
        LATENCY_SETTING: {
            readonly ENABLED: boolean;
        };
        RTMP: {
            readonly ENABLED: boolean;
            readonly PORT: number;
            readonly HOSTNAME: number;
            readonly PUBLIC_HOSTNAME: number;
        };
        RTMPS: {
            readonly ENABLED: boolean;
            readonly PORT: number;
            readonly HOSTNAME: number;
            readonly PUBLIC_HOSTNAME: number;
            readonly KEY_FILE: string;
            readonly CERT_FILE: string;
        };
        TRANSCODING: {
            readonly ENABLED: boolean;
            readonly THREADS: number;
            readonly PROFILE: string;
            readonly ALWAYS_TRANSCODE_ORIGINAL_RESOLUTION: boolean;
            RESOLUTIONS: {
                readonly '144p': boolean;
                readonly '240p': boolean;
                readonly '360p': boolean;
                readonly '480p': boolean;
                readonly '720p': boolean;
                readonly '1080p': boolean;
                readonly '1440p': boolean;
                readonly '2160p': boolean;
            };
        };
    };
    VIDEO_STUDIO: {
        readonly ENABLED: boolean;
    };
    IMPORT: {
        VIDEOS: {
            readonly CONCURRENCY: number;
            readonly TIMEOUT: number;
            HTTP: {
                readonly ENABLED: boolean;
                YOUTUBE_DL_RELEASE: {
                    readonly URL: string;
                    readonly NAME: string;
                    readonly PYTHON_PATH: string;
                };
                readonly FORCE_IPV4: boolean;
            };
            TORRENT: {
                readonly ENABLED: boolean;
            };
        };
        VIDEO_CHANNEL_SYNCHRONIZATION: {
            readonly ENABLED: boolean;
            readonly MAX_PER_USER: number;
            readonly CHECK_INTERVAL: number;
            readonly VIDEOS_LIMIT_PER_SYNCHRONIZATION: number;
            readonly FULL_SYNC_VIDEOS_LIMIT: number;
        };
    };
    AUTO_BLACKLIST: {
        VIDEOS: {
            OF_USERS: {
                readonly ENABLED: boolean;
            };
        };
    };
    CACHE: {
        PREVIEWS: {
            readonly SIZE: number;
        };
        VIDEO_CAPTIONS: {
            readonly SIZE: number;
        };
        TORRENTS: {
            readonly SIZE: number;
        };
    };
    INSTANCE: {
        readonly NAME: string;
        readonly SHORT_DESCRIPTION: string;
        readonly DESCRIPTION: string;
        readonly TERMS: string;
        readonly CODE_OF_CONDUCT: string;
        readonly CREATION_REASON: string;
        readonly MODERATION_INFORMATION: string;
        readonly ADMINISTRATOR: string;
        readonly MAINTENANCE_LIFETIME: string;
        readonly BUSINESS_MODEL: string;
        readonly HARDWARE_INFORMATION: string;
        readonly LANGUAGES: string[];
        readonly CATEGORIES: number[];
        readonly IS_NSFW: boolean;
        readonly DEFAULT_NSFW_POLICY: NSFWPolicyType;
        readonly DEFAULT_CLIENT_ROUTE: string;
        CUSTOMIZATIONS: {
            readonly JAVASCRIPT: string;
            readonly CSS: string;
        };
        readonly ROBOTS: string;
        readonly SECURITYTXT: string;
        readonly SECURITYTXT_CONTACT: string;
    };
    SERVICES: {
        TWITTER: {
            readonly USERNAME: string;
            readonly WHITELISTED: boolean;
        };
    };
    FOLLOWERS: {
        INSTANCE: {
            readonly ENABLED: boolean;
            readonly MANUAL_APPROVAL: boolean;
        };
    };
    FOLLOWINGS: {
        INSTANCE: {
            AUTO_FOLLOW_BACK: {
                readonly ENABLED: boolean;
            };
            AUTO_FOLLOW_INDEX: {
                readonly ENABLED: boolean;
                readonly INDEX_URL: string;
            };
        };
    };
    THEME: {
        readonly DEFAULT: string;
    };
    BROADCAST_MESSAGE: {
        readonly ENABLED: boolean;
        readonly MESSAGE: string;
        readonly LEVEL: BroadcastMessageLevel;
        readonly DISMISSABLE: boolean;
    };
    SEARCH: {
        REMOTE_URI: {
            readonly USERS: boolean;
            readonly ANONYMOUS: boolean;
        };
        SEARCH_INDEX: {
            readonly ENABLED: boolean;
            readonly URL: string;
            readonly DISABLE_LOCAL_SEARCH: boolean;
            readonly IS_DEFAULT_SEARCH: boolean;
        };
    };
};
declare function registerConfigChangedHandler(fun: Function): void;
declare function isEmailEnabled(): boolean;
export { CONFIG, registerConfigChangedHandler, isEmailEnabled };
export declare function reloadConfig(): void;
//# sourceMappingURL=config.d.ts.map