import { Contact } from '../users/responses.js';

interface CleanAssetsResult {
    removedItems: {
        name: string;
        reason: string;
    }[];
}
interface CreateOrderResult {
    orders: GetOrderDetailsResult[];
}
interface GetOrderDetailsResult {
    assetsInOrder: number;
    conversionStatus: string | null;
    datePlaced: Date;
    downloadCount: number;
    expirationDate: Date;
    externalPickupLink: string;
    orderedItems: OrderItem[];
    recipient: Contact;
    sender: Contact;
    sequenceNumber: string;
    status: string;
    uuid: string;
}
interface OrderItem {
    conversions: Record<string, string>;
    filename: string;
    previews: {
        preview125: string;
        preview160: string;
        preview300: string;
        preview600: string;
        preview2048: string;
    };
    uuid: string;
}
interface GetZipStatusResult {
    archived: number;
    done: boolean;
    download: string | null;
    errored: boolean;
    total: number;
}
interface ListConversionsForOrderResult {
    conversions: {
        approvalRequired: boolean;
        description: string | null;
        displayOrder: number;
        mediaType: string;
        name: string;
        uuid: string;
    }[];
}
interface ListOrderProfileResult {
    profiles: {
        internetDelivery: boolean;
        metadataTypeUuid: string;
        name: string;
        sendToSelf?: boolean;
        specialInstructions: string | null;
        uuid: string;
    }[];
}

export type { CleanAssetsResult, CreateOrderResult, GetOrderDetailsResult, GetZipStatusResult, ListConversionsForOrderResult, ListOrderProfileResult, OrderItem };
