import { JINGLE_INFO_CHECKSUM_5, JINGLE_INFO_RECEIVED_5, JingleSessionRole } from '../Constants';
import { DefinitionOptions } from '../jxt';
import { NS_JINGLE_FILE_TRANSFER_4, NS_JINGLE_FILE_TRANSFER_5 } from '../Namespaces';
import { Hash, HashUsed, JingleApplication, JingleInfo, Thumbnail } from './';
export interface FileTransferDescription extends JingleApplication {
    applicationType: typeof NS_JINGLE_FILE_TRANSFER_5 | typeof NS_JINGLE_FILE_TRANSFER_4;
    file: FileDescription;
}
export interface FileDescription {
    name?: string;
    description?: string;
    mediaType?: string;
    size?: number;
    date?: Date;
    range?: FileRange;
    hashes?: Hash[];
    hashesUsed?: HashUsed[];
    thumbnails?: Thumbnail[];
}
export interface FileRange {
    offset?: number;
    length?: number;
}
export interface FileTransferInfo extends JingleInfo {
    infoType: typeof JINGLE_INFO_CHECKSUM_5 | typeof JINGLE_INFO_RECEIVED_5;
    creator?: JingleSessionRole;
    name: string;
    file?: FileDescription;
}
declare let Protocol: DefinitionOptions[];
export default Protocol;
