/// <reference types="node" />
import { ChildProcess } from 'child_process';
import { Video, VideoChannel, VideoChannelSync, VideoCreateResult, VideoDetails } from '../../models';
import { BulkCommand } from '../bulk';
import { CLICommand } from '../cli';
import { CustomPagesCommand } from '../custom-pages';
import { FeedCommand } from '../feeds';
import { LogsCommand } from '../logs';
import { SQLCommand } from '../miscs';
import { AbusesCommand } from '../moderation';
import { OverviewsCommand } from '../overviews';
import { SearchCommand } from '../search';
import { SocketIOCommand } from '../socket';
import { AccountsCommand, BlocklistCommand, LoginCommand, NotificationsCommand, SubscriptionsCommand, TwoFactorCommand, UsersCommand } from '../users';
import { BlacklistCommand, CaptionsCommand, ChangeOwnershipCommand, ChannelsCommand, ChannelSyncsCommand, HistoryCommand, ImportsCommand, LiveCommand, PlaylistsCommand, ServicesCommand, StreamingPlaylistsCommand, VideosCommand, VideoStudioCommand, VideoTokenCommand, ViewsCommand } from '../videos';
import { CommentsCommand } from '../videos/comments-command';
import { VideoStatsCommand } from '../videos/video-stats-command';
import { ConfigCommand } from './config-command';
import { ContactFormCommand } from './contact-form-command';
import { DebugCommand } from './debug-command';
import { FollowsCommand } from './follows-command';
import { JobsCommand } from './jobs-command';
import { MetricsCommand } from './metrics-command';
import { ObjectStorageCommand } from './object-storage-command';
import { PluginsCommand } from './plugins-command';
import { RedundancyCommand } from './redundancy-command';
import { ServersCommand } from './servers-command';
import { StatsCommand } from './stats-command';
export declare type RunServerOptions = {
    hideLogs?: boolean;
    nodeArgs?: string[];
    peertubeArgs?: string[];
    env?: {
        [id: string]: string;
    };
};
export declare class PeerTubeServer {
    app?: ChildProcess;
    url: string;
    host?: string;
    hostname?: string;
    port?: number;
    rtmpPort?: number;
    rtmpsPort?: number;
    parallel?: boolean;
    internalServerNumber: number;
    serverNumber?: number;
    customConfigFile?: string;
    store?: {
        client?: {
            id?: string;
            secret?: string;
        };
        user?: {
            username: string;
            password: string;
            email?: string;
        };
        channel?: VideoChannel;
        videoChannelSync?: Partial<VideoChannelSync>;
        video?: Video;
        videoCreated?: VideoCreateResult;
        videoDetails?: VideoDetails;
        videos?: {
            id: number;
            uuid: string;
        }[];
    };
    accessToken?: string;
    refreshToken?: string;
    bulk?: BulkCommand;
    cli?: CLICommand;
    customPage?: CustomPagesCommand;
    feed?: FeedCommand;
    logs?: LogsCommand;
    abuses?: AbusesCommand;
    overviews?: OverviewsCommand;
    search?: SearchCommand;
    contactForm?: ContactFormCommand;
    debug?: DebugCommand;
    follows?: FollowsCommand;
    jobs?: JobsCommand;
    metrics?: MetricsCommand;
    plugins?: PluginsCommand;
    redundancy?: RedundancyCommand;
    stats?: StatsCommand;
    config?: ConfigCommand;
    socketIO?: SocketIOCommand;
    accounts?: AccountsCommand;
    blocklist?: BlocklistCommand;
    subscriptions?: SubscriptionsCommand;
    live?: LiveCommand;
    services?: ServicesCommand;
    blacklist?: BlacklistCommand;
    captions?: CaptionsCommand;
    changeOwnership?: ChangeOwnershipCommand;
    playlists?: PlaylistsCommand;
    history?: HistoryCommand;
    imports?: ImportsCommand;
    channelSyncs?: ChannelSyncsCommand;
    streamingPlaylists?: StreamingPlaylistsCommand;
    channels?: ChannelsCommand;
    comments?: CommentsCommand;
    sql?: SQLCommand;
    notifications?: NotificationsCommand;
    servers?: ServersCommand;
    login?: LoginCommand;
    users?: UsersCommand;
    objectStorage?: ObjectStorageCommand;
    videoStudio?: VideoStudioCommand;
    videos?: VideosCommand;
    videoStats?: VideoStatsCommand;
    views?: ViewsCommand;
    twoFactor?: TwoFactorCommand;
    videoToken?: VideoTokenCommand;
    constructor(options: {
        serverNumber: number;
    } | {
        url: string;
    });
    setServerNumber(serverNumber: number): void;
    setUrl(url: string): void;
    getDirectoryPath(directoryName: string): string;
    flushAndRun(configOverride?: Object, options?: RunServerOptions): Promise<void>;
    run(configOverrideArg?: any, options?: RunServerOptions): Promise<void>;
    kill(): Promise<void>;
    private randomServer;
    private randomRTMP;
    private assignCustomConfigFile;
    private buildConfigOverride;
    private assignCommands;
}
//# sourceMappingURL=server.d.ts.map