import { CronRepeatOptions, EveryRepeatOptions } from 'bull';
import { AbuseState, JobType, VideoImportState, VideoPrivacy, VideoRateType, VideoResolution, VideoState, VideoTranscodingFPS } from '../../shared/models';
import { ActivityPubActorType } from '../../shared/models/activitypub';
import { FollowState } from '../../shared/models/actors';
import { NSFWPolicyType } from '../../shared/models/videos/nsfw-policy.type';
import { VideoPlaylistPrivacy } from '../../shared/models/videos/playlist/video-playlist-privacy.model';
import { VideoPlaylistType } from '../../shared/models/videos/playlist/video-playlist-type.model';
declare const LAST_MIGRATION_VERSION = 680;
declare const API_VERSION = "v1";
declare const PEERTUBE_VERSION: string;
declare const PAGINATION: {
    GLOBAL: {
        COUNT: {
            DEFAULT: number;
            MAX: number;
        };
    };
    OUTBOX: {
        COUNT: {
            MAX: number;
        };
    };
};
declare const WEBSERVER: {
    URL: string;
    HOST: string;
    SCHEME: string;
    WS: string;
    HOSTNAME: string;
    PORT: number;
    RTMP_URL: string;
    RTMPS_URL: string;
};
declare const SORTABLE_COLUMNS: {
    USERS: string[];
    USER_SUBSCRIPTIONS: string[];
    ACCOUNTS: string[];
    JOBS: string[];
    VIDEO_CHANNELS: string[];
    VIDEO_IMPORTS: string[];
    VIDEO_COMMENT_THREADS: string[];
    VIDEO_COMMENTS: string[];
    VIDEO_RATES: string[];
    BLACKLISTS: string[];
    INSTANCE_FOLLOWERS: string[];
    INSTANCE_FOLLOWING: string[];
    ACCOUNT_FOLLOWERS: string[];
    CHANNEL_FOLLOWERS: string[];
    VIDEOS: string[];
    VIDEOS_SEARCH: string[];
    VIDEO_CHANNELS_SEARCH: string[];
    VIDEO_PLAYLISTS_SEARCH: string[];
    ABUSES: string[];
    ACCOUNTS_BLOCKLIST: string[];
    SERVERS_BLOCKLIST: string[];
    USER_NOTIFICATIONS: string[];
    VIDEO_PLAYLISTS: string[];
    PLUGINS: string[];
    AVAILABLE_PLUGINS: string[];
    VIDEO_REDUNDANCIES: string[];
};
declare const OAUTH_LIFETIME: {
    ACCESS_TOKEN: number;
    REFRESH_TOKEN: number;
};
declare const ROUTE_CACHE_LIFETIME: {
    FEEDS: string;
    ROBOTS: string;
    SITEMAP: string;
    SECURITYTXT: string;
    NODEINFO: string;
    DNT_POLICY: string;
    ACTIVITY_PUB: {
        VIDEOS: string;
    };
    STATS: string;
};
declare const ACTOR_FOLLOW_SCORE: {
    PENALTY: number;
    BONUS: number;
    BASE: number;
    MAX: number;
};
declare const FOLLOW_STATES: {
    [id: string]: FollowState;
};
declare const REMOTE_SCHEME: {
    HTTP: string;
    WS: string;
};
declare const JOB_ATTEMPTS: {
    [id in JobType]: number;
};
declare const JOB_CONCURRENCY: {
    [id in Exclude<JobType, 'video-transcoding' | 'video-import'>]: number;
};
declare const JOB_TTL: {
    [id in JobType]: number;
};
declare const REPEAT_JOBS: {
    [id in JobType]?: EveryRepeatOptions | CronRepeatOptions;
};
declare const JOB_PRIORITY: {
    TRANSCODING: number;
};
declare const BROADCAST_CONCURRENCY = 30;
declare const CRAWL_REQUEST_CONCURRENCY = 1;
declare const AP_CLEANER: {
    CONCURRENCY: number;
    UNAVAILABLE_TRESHOLD: number;
    PERIOD: number;
};
declare const REQUEST_TIMEOUTS: {
    DEFAULT: number;
    FILE: number;
    REDUNDANCY: number;
};
declare const JOB_COMPLETED_LIFETIME: number;
declare const VIDEO_IMPORT_TIMEOUT: number;
declare const SCHEDULER_INTERVALS_MS: {
    ACTOR_FOLLOW_SCORES: number;
    REMOVE_OLD_JOBS: number;
    UPDATE_VIDEOS: number;
    YOUTUBE_DL_UPDATE: number;
    VIDEO_VIEWS_BUFFER_UPDATE: number;
    CHECK_PLUGINS: number;
    CHECK_PEERTUBE_VERSION: number;
    AUTO_FOLLOW_INDEX_INSTANCES: number;
    REMOVE_OLD_VIEWS: number;
    REMOVE_OLD_HISTORY: number;
    UPDATE_INBOX_STATS: number;
    REMOVE_DANGLING_RESUMABLE_UPLOADS: number;
};
declare const CONSTRAINTS_FIELDS: {
    USERS: {
        NAME: {
            min: number;
            max: number;
        };
        DESCRIPTION: {
            min: number;
            max: number;
        };
        USERNAME: {
            min: number;
            max: number;
        };
        PASSWORD: {
            min: number;
            max: number;
        };
        VIDEO_QUOTA: {
            min: number;
        };
        VIDEO_QUOTA_DAILY: {
            min: number;
        };
        VIDEO_LANGUAGES: {
            max: number;
        };
        BLOCKED_REASON: {
            min: number;
            max: number;
        };
    };
    ABUSES: {
        REASON: {
            min: number;
            max: number;
        };
        MODERATION_COMMENT: {
            min: number;
            max: number;
        };
    };
    ABUSE_MESSAGES: {
        MESSAGE: {
            min: number;
            max: number;
        };
    };
    VIDEO_BLACKLIST: {
        REASON: {
            min: number;
            max: number;
        };
    };
    VIDEO_CHANNELS: {
        NAME: {
            min: number;
            max: number;
        };
        DESCRIPTION: {
            min: number;
            max: number;
        };
        SUPPORT: {
            min: number;
            max: number;
        };
        URL: {
            min: number;
            max: number;
        };
    };
    VIDEO_CAPTIONS: {
        CAPTION_FILE: {
            EXTNAME: string[];
            FILE_SIZE: {
                max: number;
            };
        };
    };
    VIDEO_IMPORTS: {
        URL: {
            min: number;
            max: number;
        };
        TORRENT_NAME: {
            min: number;
            max: number;
        };
        TORRENT_FILE: {
            EXTNAME: string[];
            FILE_SIZE: {
                max: number;
            };
        };
    };
    VIDEOS_REDUNDANCY: {
        URL: {
            min: number;
            max: number;
        };
    };
    VIDEO_RATES: {
        URL: {
            min: number;
            max: number;
        };
    };
    VIDEOS: {
        NAME: {
            min: number;
            max: number;
        };
        LANGUAGE: {
            min: number;
            max: number;
        };
        TRUNCATED_DESCRIPTION: {
            min: number;
            max: number;
        };
        DESCRIPTION: {
            min: number;
            max: number;
        };
        SUPPORT: {
            min: number;
            max: number;
        };
        IMAGE: {
            EXTNAME: string[];
            FILE_SIZE: {
                max: number;
            };
        };
        EXTNAME: string[];
        INFO_HASH: {
            min: number;
            max: number;
        };
        DURATION: {
            min: number;
        };
        TAGS: {
            min: number;
            max: number;
        };
        TAG: {
            min: number;
            max: number;
        };
        VIEWS: {
            min: number;
        };
        LIKES: {
            min: number;
        };
        DISLIKES: {
            min: number;
        };
        FILE_SIZE: {
            min: number;
        };
        PARTIAL_UPLOAD_SIZE: {
            max: number;
        };
        URL: {
            min: number;
            max: number;
        };
    };
    VIDEO_PLAYLISTS: {
        NAME: {
            min: number;
            max: number;
        };
        DESCRIPTION: {
            min: number;
            max: number;
        };
        URL: {
            min: number;
            max: number;
        };
        IMAGE: {
            EXTNAME: string[];
            FILE_SIZE: {
                max: number;
            };
        };
    };
    ACTORS: {
        PUBLIC_KEY: {
            min: number;
            max: number;
        };
        PRIVATE_KEY: {
            min: number;
            max: number;
        };
        URL: {
            min: number;
            max: number;
        };
        IMAGE: {
            EXTNAME: string[];
            FILE_SIZE: {
                max: number;
            };
        };
    };
    VIDEO_EVENTS: {
        COUNT: {
            min: number;
        };
    };
    VIDEO_COMMENTS: {
        TEXT: {
            min: number;
            max: number;
        };
        URL: {
            min: number;
            max: number;
        };
    };
    VIDEO_SHARE: {
        URL: {
            min: number;
            max: number;
        };
    };
    CONTACT_FORM: {
        FROM_NAME: {
            min: number;
            max: number;
        };
        BODY: {
            min: number;
            max: number;
        };
    };
    PLUGINS: {
        NAME: {
            min: number;
            max: number;
        };
        DESCRIPTION: {
            min: number;
            max: number;
        };
    };
    COMMONS: {
        URL: {
            min: number;
            max: number;
        };
    };
};
declare const VIEW_LIFETIME: {
    VIEW: number;
    VIEWER: number;
};
declare let CONTACT_FORM_LIFETIME: number;
declare const VIDEO_TRANSCODING_FPS: VideoTranscodingFPS;
declare const DEFAULT_AUDIO_RESOLUTION = VideoResolution.H_480P;
declare const VIDEO_RATE_TYPES: {
    [id: string]: VideoRateType;
};
declare const FFMPEG_NICE: {
    [id: string]: number;
};
declare const VIDEO_CATEGORIES: {
    1: string;
    2: string;
    3: string;
    4: string;
    5: string;
    6: string;
    7: string;
    8: string;
    9: string;
    10: string;
    11: string;
    12: string;
    13: string;
    14: string;
    15: string;
    16: string;
    17: string;
    18: string;
};
declare const VIDEO_LICENCES: {
    1: string;
    2: string;
    3: string;
    4: string;
    5: string;
    6: string;
    7: string;
};
declare const VIDEO_LANGUAGES: {
    [id: string]: string;
};
declare const VIDEO_PRIVACIES: {
    [id in VideoPrivacy]: string;
};
declare const VIDEO_STATES: {
    [id in VideoState]: string;
};
declare const VIDEO_IMPORT_STATES: {
    [id in VideoImportState]: string;
};
declare const ABUSE_STATES: {
    [id in AbuseState]: string;
};
declare const VIDEO_PLAYLIST_PRIVACIES: {
    [id in VideoPlaylistPrivacy]: string;
};
declare const VIDEO_PLAYLIST_TYPES: {
    [id in VideoPlaylistType]: string;
};
declare const MIMETYPES: {
    AUDIO: {
        MIMETYPE_EXT: {
            'audio/mpeg': string;
            'audio/mp3': string;
            'application/ogg': string;
            'audio/ogg': string;
            'audio/x-ms-wma': string;
            'audio/wav': string;
            'audio/x-wav': string;
            'audio/x-flac': string;
            'audio/flac': string;
            'audio/aac': string;
            'audio/m4a': string;
            'audio/mp4': string;
            'audio/x-m4a': string;
            'audio/ac3': string;
        };
        EXT_MIMETYPE: {
            [id: string]: string;
        };
    };
    VIDEO: {
        MIMETYPE_EXT: {
            [id: string]: string | string[];
        };
        MIMETYPES_REGEX: string;
        EXT_MIMETYPE: {
            [id: string]: string;
        };
    };
    IMAGE: {
        MIMETYPE_EXT: {
            'image/png': string;
            'image/gif': string;
            'image/webp': string;
            'image/jpg': string;
            'image/jpeg': string;
        };
        EXT_MIMETYPE: {
            [id: string]: string;
        };
    };
    VIDEO_CAPTIONS: {
        MIMETYPE_EXT: {
            'text/vtt': string;
            'application/x-subrip': string;
            'text/plain': string;
        };
    };
    TORRENT: {
        MIMETYPE_EXT: {
            'application/x-bittorrent': string;
        };
    };
};
declare const BINARY_CONTENT_TYPES: Set<string>;
declare const OVERVIEWS: {
    VIDEOS: {
        SAMPLE_THRESHOLD: number;
        SAMPLES_COUNT: number;
    };
};
declare const SERVER_ACTOR_NAME = "peertube";
declare const ACTIVITY_PUB: {
    POTENTIAL_ACCEPT_HEADERS: string[];
    ACCEPT_HEADER: string;
    PUBLIC: string;
    COLLECTION_ITEMS_PER_PAGE: number;
    FETCH_PAGE_LIMIT: number;
    URL_MIME_TYPES: {
        VIDEO: string[];
        TORRENT: string[];
        MAGNET: string[];
    };
    MAX_RECURSION_COMMENTS: number;
    ACTOR_REFRESH_INTERVAL: number;
    VIDEO_REFRESH_INTERVAL: number;
    VIDEO_PLAYLIST_REFRESH_INTERVAL: number;
};
declare const ACTIVITY_PUB_ACTOR_TYPES: {
    [id: string]: ActivityPubActorType;
};
declare const HTTP_SIGNATURE: {
    HEADER_NAME: string;
    ALGORITHM: string;
    HEADERS_TO_SIGN: string[];
    REQUIRED_HEADERS: {
        ALL: string[];
        POST: string[];
    };
    CLOCK_SKEW_SECONDS: number;
};
declare let PRIVATE_RSA_KEY_SIZE: number;
declare const BCRYPT_SALT_SIZE = 10;
declare const USER_PASSWORD_RESET_LIFETIME: number;
declare const USER_PASSWORD_CREATE_LIFETIME: number;
declare const USER_EMAIL_VERIFY_LIFETIME: number;
declare const NSFW_POLICY_TYPES: {
    [id: string]: NSFWPolicyType;
};
declare const STATIC_PATHS: {
    THUMBNAILS: string;
    WEBSEED: string;
    REDUNDANCY: string;
    STREAMING_PLAYLISTS: {
        HLS: string;
    };
};
declare const STATIC_DOWNLOAD_PATHS: {
    TORRENTS: string;
    VIDEOS: string;
    HLS_VIDEOS: string;
};
declare const LAZY_STATIC_PATHS: {
    BANNERS: string;
    AVATARS: string;
    PREVIEWS: string;
    VIDEO_CAPTIONS: string;
    TORRENTS: string;
};
declare const STATIC_MAX_AGE: {
    SERVER: string;
    LAZY_SERVER: string;
    CLIENT: string;
};
declare const THUMBNAILS_SIZE: {
    width: number;
    height: number;
    minWidth: number;
};
declare const PREVIEWS_SIZE: {
    width: number;
    height: number;
    minWidth: number;
};
declare const ACTOR_IMAGES_SIZE: {
    AVATARS: {
        width: number;
        height: number;
    };
    BANNERS: {
        width: number;
        height: number;
    };
};
declare const EMBED_SIZE: {
    width: number;
    height: number;
};
declare const FILES_CACHE: {
    PREVIEWS: {
        DIRECTORY: string;
        MAX_AGE: number;
    };
    VIDEO_CAPTIONS: {
        DIRECTORY: string;
        MAX_AGE: number;
    };
    TORRENTS: {
        DIRECTORY: string;
        MAX_AGE: number;
    };
};
declare const LRU_CACHE: {
    USER_TOKENS: {
        MAX_SIZE: number;
    };
    ACTOR_IMAGE_STATIC: {
        MAX_SIZE: number;
    };
};
declare const RESUMABLE_UPLOAD_DIRECTORY: string;
declare const HLS_STREAMING_PLAYLIST_DIRECTORY: string;
declare const HLS_REDUNDANCY_DIRECTORY: string;
declare const RESUMABLE_UPLOAD_SESSION_LIFETIME: number;
declare const VIDEO_LIVE: {
    EXTENSION: string;
    CLEANUP_DELAY: number;
    SEGMENT_TIME_SECONDS: number;
    SEGMENTS_LIST_SIZE: number;
    REPLAY_DIRECTORY: string;
    EDGE_LIVE_DELAY_SEGMENTS_NOTIFICATION: number;
    MAX_SOCKET_WAITING_DATA: number;
    RTMP: {
        CHUNK_SIZE: number;
        GOP_CACHE: boolean;
        PING: number;
        PING_TIMEOUT: number;
        BASE_PATH: string;
    };
};
declare const MEMOIZE_TTL: {
    OVERVIEWS_SAMPLE: number;
    INFO_HASH_EXISTS: number;
    LIVE_ABLE_TO_UPLOAD: number;
    LIVE_CHECK_SOCKET_HEALTH: number;
};
declare const MEMOIZE_LENGTH: {
    INFO_HASH_EXISTS: number;
};
declare const QUEUE_CONCURRENCY: {
    ACTOR_PROCESS_IMAGE: number;
};
declare const REDUNDANCY: {
    VIDEOS: {
        RANDOMIZED_FACTOR: number;
    };
};
declare const ACCEPT_HEADERS: string[];
declare const ASSETS_PATH: {
    DEFAULT_AUDIO_BACKGROUND: string;
    DEFAULT_LIVE_BACKGROUND: string;
};
declare const CUSTOM_HTML_TAG_COMMENTS: {
    TITLE: string;
    DESCRIPTION: string;
    CUSTOM_CSS: string;
    META_TAGS: string;
    SERVER_CONFIG: string;
};
declare const FEEDS: {
    COUNT: number;
};
declare const MAX_LOGS_OUTPUT_CHARACTERS: number;
declare const LOG_FILENAME = "peertube.log";
declare const AUDIT_LOG_FILENAME = "peertube-audit.log";
declare const TRACKER_RATE_LIMITS: {
    INTERVAL: number;
    ANNOUNCES_PER_IP_PER_INFOHASH: number;
    ANNOUNCES_PER_IP: number;
    BLOCK_IP_LIFETIME: number;
};
declare const P2P_MEDIA_LOADER_PEER_VERSION = 2;
declare const PLUGIN_GLOBAL_CSS_FILE_NAME = "plugins-global.css";
declare const PLUGIN_GLOBAL_CSS_PATH: string;
declare let PLUGIN_EXTERNAL_AUTH_TOKEN_LIFETIME: number;
declare const DEFAULT_THEME_NAME = "default";
declare const DEFAULT_USER_THEME_NAME = "instance-default";
declare const SEARCH_INDEX: {
    ROUTES: {
        VIDEOS: string;
        VIDEO_CHANNELS: string;
    };
};
declare const FILES_CONTENT_HASH: {
    MANIFEST: string;
    FAVICON: string;
    LOGO: string;
};
export { WEBSERVER, API_VERSION, VIDEO_LIVE, PEERTUBE_VERSION, LAZY_STATIC_PATHS, SEARCH_INDEX, RESUMABLE_UPLOAD_DIRECTORY, RESUMABLE_UPLOAD_SESSION_LIFETIME, HLS_REDUNDANCY_DIRECTORY, P2P_MEDIA_LOADER_PEER_VERSION, ACTOR_IMAGES_SIZE, ACCEPT_HEADERS, BCRYPT_SALT_SIZE, TRACKER_RATE_LIMITS, FILES_CACHE, LOG_FILENAME, CONSTRAINTS_FIELDS, EMBED_SIZE, REDUNDANCY, JOB_CONCURRENCY, JOB_ATTEMPTS, AP_CLEANER, LAST_MIGRATION_VERSION, OAUTH_LIFETIME, CUSTOM_HTML_TAG_COMMENTS, BROADCAST_CONCURRENCY, AUDIT_LOG_FILENAME, PAGINATION, ACTOR_FOLLOW_SCORE, PREVIEWS_SIZE, REMOTE_SCHEME, FOLLOW_STATES, DEFAULT_USER_THEME_NAME, SERVER_ACTOR_NAME, PLUGIN_GLOBAL_CSS_FILE_NAME, PLUGIN_GLOBAL_CSS_PATH, PRIVATE_RSA_KEY_SIZE, ROUTE_CACHE_LIFETIME, SORTABLE_COLUMNS, HLS_STREAMING_PLAYLIST_DIRECTORY, FEEDS, JOB_TTL, DEFAULT_THEME_NAME, NSFW_POLICY_TYPES, STATIC_MAX_AGE, STATIC_PATHS, VIDEO_IMPORT_TIMEOUT, VIDEO_PLAYLIST_TYPES, MAX_LOGS_OUTPUT_CHARACTERS, ACTIVITY_PUB, ACTIVITY_PUB_ACTOR_TYPES, THUMBNAILS_SIZE, VIDEO_CATEGORIES, MEMOIZE_LENGTH, VIDEO_LANGUAGES, VIDEO_PRIVACIES, VIDEO_LICENCES, VIDEO_STATES, QUEUE_CONCURRENCY, VIDEO_RATE_TYPES, JOB_PRIORITY, VIDEO_TRANSCODING_FPS, FFMPEG_NICE, ABUSE_STATES, LRU_CACHE, REQUEST_TIMEOUTS, USER_PASSWORD_RESET_LIFETIME, USER_PASSWORD_CREATE_LIFETIME, MEMOIZE_TTL, USER_EMAIL_VERIFY_LIFETIME, OVERVIEWS, SCHEDULER_INTERVALS_MS, REPEAT_JOBS, STATIC_DOWNLOAD_PATHS, MIMETYPES, CRAWL_REQUEST_CONCURRENCY, DEFAULT_AUDIO_RESOLUTION, BINARY_CONTENT_TYPES, JOB_COMPLETED_LIFETIME, HTTP_SIGNATURE, VIDEO_IMPORT_STATES, VIEW_LIFETIME, CONTACT_FORM_LIFETIME, VIDEO_PLAYLIST_PRIVACIES, PLUGIN_EXTERNAL_AUTH_TOKEN_LIFETIME, ASSETS_PATH, FILES_CONTENT_HASH, loadLanguages, buildLanguages, generateContentHash };
declare function loadLanguages(): void;
declare function buildLanguages(): {
    [id: string]: string;
};
declare function generateContentHash(): string;
//# sourceMappingURL=constants.d.ts.map