import { BaseHandler, OutputFormat } from './base.handler';
import { StreamServiceConfig } from '../services/stream.service.sdk';
import { AuthConfig } from '../types/auth';
import { StreamGetKeyOptions, StreamStartOptions, StreamStopOptions, StreamStatusOptions, StreamPushOptions, StreamVerificationOptions, StreamMonitorOptions } from '../types/stream';
export declare class StreamHandler extends BaseHandler {
    private readonly streamService;
    constructor(authConfig: AuthConfig, serviceConfig: StreamServiceConfig);
    getStreamKey(options: StreamGetKeyOptions): Promise<void>;
    private validateGetStreamKeyOptions;
    private displayStreamCredentialsAsTable;
    private displayStreamCredentialsAsJson;
    private createSecureDisplayModel;
    startStream(options: StreamStartOptions): Promise<void>;
    private validateStartStreamOptions;
    private displayStreamStatus;
    stopStream(options: StreamStopOptions): Promise<void>;
    private validateStopStreamOptions;
    getStreamStatus(options: StreamStatusOptions): Promise<void>;
    getHlsPullUrl(options: {
        channelId: string;
        output?: OutputFormat;
    }): Promise<void>;
    private validateStreamStatusOptions;
    private displayStreamStatusAsTable;
    private displayStreamStatusAsJson;
    private displayEnhancedStatus;
    private displaySecurityWarning;
    pushStream(options: StreamPushOptions): Promise<void>;
    private validatePushStreamOptions;
    verifyStream(options: StreamVerificationOptions): Promise<void>;
    monitorStream(options: StreamMonitorOptions): Promise<void>;
    getLiveStatus(options: {
        stream: string;
        output?: OutputFormat;
    }): Promise<void>;
    getLiveStatusList(options: {
        channelIds: string[];
        output?: OutputFormat;
    }): Promise<void>;
    getStreams(options: {
        channelIds: string[];
        output?: OutputFormat;
    }): Promise<void>;
    listDiskVideo(options: {
        channelId: string;
        page?: number;
        pageSize?: number;
        output?: OutputFormat;
    }): Promise<void>;
    getCaptureImage(options: {
        channelId: string;
        output?: OutputFormat;
    }): Promise<void>;
    addDiskVideos(options: {
        channelId: string;
        vids: string[];
        origin?: 'vod' | 'material' | 'record';
        startTimes?: Array<string | number>;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    deleteDiskVideos(options: {
        channelId: string;
        vids?: string[];
        videoIds?: string[];
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    endDiskPush(options: {
        channelId: string;
        diskVideoId: string;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    banPush(options: {
        channelId: string;
        userId: string;
        forbidTime?: number;
        playbackForbidden?: 'Y' | 'N';
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    resumePush(options: {
        channelId: string;
        userId: string;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    updateStreamType(options: {
        channelId: string;
        streamType: string;
        pullUrl?: string;
        pullStreamTime?: number;
        force?: boolean;
        output?: OutputFormat;
    }): Promise<void>;
    private requireFields;
    private compactOptions;
    private displayWriteResult;
    private validateVerifyStreamOptions;
    private validateMonitorStreamOptions;
    private sleep;
    private formatDuration;
}
//# sourceMappingURL=stream.handler.d.ts.map