import { IStreamOptions, IStreamPrepareOptions } from '../Video/IOptions';
import { ITrackInfo } from './IStreamTrackInfo';
import StreamProtocol from './StreamProtocol';
/**
 * Returned properties of stream events that occur on stream events:
 * connected, disconnected, error, stop, tracks_changed
 */
export interface IStreamEventProperties {
    uri: string;
    x: number;
    y: number;
    width: number;
    height: number;
    protocol?: keyof typeof StreamProtocol | string;
    /**
     * @deprecated Events should not return options objects. Instead, they should return protocol {@link protocol}
     */
    options?: IStreamOptions | IStreamPrepareOptions;
}
export interface IStreamErrorEventProperties extends IStreamEventProperties {
    /**
     * Error message describing the error that occurred (if any).
     */
    errorMessage?: string;
}
export interface IStreamTracksChangedEventProperties extends IStreamEventProperties {
    /**
     * List of tracks that are available for the stream.
     */
    tracks: ITrackInfo[];
}
