import { PartialDeep } from "type-fest";
import { BrowserStats } from "./BrowserStats";
import { DeliveryRecord } from "./Delivery";
import { EmailAddress, EmailAddresses } from "./EmailAddress";
import { ReactionsByUserKey, ReactionsPrettyByUserKey } from "./reaction";
import { RecordingStats } from "./RecordingStats";
import { UserKey } from "./user";
import VideoFormat from "./VideoFormat";
export interface Videomail {
    subject?: string;
    body?: string;
    from: EmailAddress;
    fromNickName?: string | null;
    to?: EmailAddresses | undefined;
    bcc?: EmailAddresses | undefined;
    cc?: EmailAddresses | undefined;
    alias: string;
    connection?: Record<string, number | string>;
    dateCreated: number;
    dateCreatedServerPretty: string;
    dateUpdated?: number;
    dateUpdatedServerPretty?: string;
    expiresAfter: number;
    expiresAfterIso: string;
    expiresAfterServerPretty: string;
    format?: VideoFormat;
    height?: number | undefined;
    key: string;
    mp4?: string;
    vtt?: string;
    captions?: string | undefined;
    poster: string;
    browserStats?: BrowserStats | undefined;
    recordingStats?: RecordingStats | undefined;
    recordLocation?: string | undefined;
    parentKey?: string | undefined;
    parentSnapshots?: Videomail[] | undefined;
    reactions?: ReactionsByUserKey | undefined;
    reactionsPretty?: ReactionsPrettyByUserKey | undefined;
    replyAllUrl?: string;
    replyUrl: string;
    shareUrl?: string;
    sending: boolean;
    sent?: boolean;
    sentDate?: number;
    sentDateIso?: string;
    sentDateServerPretty?: string;
    serverTimePretty?: string;
    whitelistKey: string;
    siteName?: string | undefined;
    url: string;
    userKey?: UserKey | undefined;
    versions: {
        videomailNinjaFormPlugin?: string;
        videomailClient: string;
    };
    webm?: string;
    width?: number | undefined;
    sentTo?: DeliveryRecord;
    sentCc?: DeliveryRecord;
    sentBcc?: DeliveryRecord;
    rejectedTo?: DeliveryRecord;
    rejectedCc?: DeliveryRecord;
    rejectedBcc?: DeliveryRecord;
    public?: boolean;
    editUrl?: string;
    repeatUrl?: string;
}
export type PartialVideomail = PartialDeep<Videomail>;
