import { BindingType, PrintQuote, PrintOrder, ShippingAddress, OrderStatus } from '@book-print/shared';
export interface ValidationInput {
    interiorPdfUrl: string;
    coverPdfUrl: string;
    pageCount: number;
    binding: BindingType;
}
export interface ValidationResult {
    isValid: boolean;
    errors: string[];
    warnings: string[];
}
export interface QuoteInput {
    projectId: string;
    pageCount: number;
    binding: BindingType;
    quantity: number;
    shippingAddress: ShippingAddress;
}
export interface CreateOrderInput {
    projectId: string;
    quoteId: string;
    interiorPdfUrl: string;
    coverPdfUrl: string;
    shippingAddress: ShippingAddress;
    idempotencyKey: string;
}
export interface PrintProvider {
    name: string;
    validateFiles(input: ValidationInput): Promise<ValidationResult>;
    getQuote(input: QuoteInput): Promise<PrintQuote>;
    createOrder(input: CreateOrderInput): Promise<PrintOrder>;
    getOrderStatus(orderId: string): Promise<{
        status: OrderStatus;
        trackingNumber?: string;
        trackingUrl?: string;
    }>;
}
//# sourceMappingURL=interface.d.ts.map