export type BindingType = 'paperback' | 'hardcover';
export type GenericCoverStyle = 'classic' | 'minimal' | 'natural' | 'dark' | 'academic' | 'contemporary';
export interface CoverConfig {
    mode: 'generic' | 'custom';
    genericStyle?: GenericCoverStyle;
    customImagePath?: string;
    customImageScale?: number;
    customImagePosition?: {
        x: number;
        y: number;
    };
    themePrimaryColor?: string;
    themeBackgroundColor?: string;
}
export interface BookMetadata {
    title: string;
    subtitle?: string;
    author: string;
    imprint?: string;
    copyrightHolder?: string;
    copyrightYear?: number;
    website?: string;
    publisherContact?: string;
    includeTitlePage: boolean;
    includeCopyrightPage: boolean;
}
export interface ShippingAddress {
    fullName: string;
    addressLine1: string;
    addressLine2?: string;
    city: string;
    state: string;
    postalCode: string;
    country: string;
    phone?: string;
}
export interface BookProject {
    id: string;
    title: string;
    sourceNotePaths: string[];
    workingManuscript: string;
    metadata: BookMetadata;
    coverConfig: CoverConfig;
    bindingPreference: BindingType;
    quantity: number;
    shippingAddress?: ShippingAddress;
    createdAt: string;
    updatedAt: string;
}
export type OrderStatus = 'draft' | 'rendering' | 'rendered' | 'validating' | 'validation_failed' | 'ready_for_quote' | 'quoted' | 'awaiting_payment' | 'paid' | 'submitting_to_printer' | 'printer_accepted' | 'in_production' | 'shipped' | 'delivered' | 'canceled' | 'failed';
export interface LineItemQuote {
    pageCount: number;
    podPackageId: string;
    unitPriceCents: number;
    totalManufacturingCents: number;
    shippingCostCents: number;
    serviceFeeCents: number;
    taxCents: number;
    totalCostCents: number;
    currency: string;
}
export interface ShippingOption {
    id: string;
    name: string;
    estimatedDays: string;
    costCents: number;
    currency: string;
}
export interface PrintQuote {
    quoteId: string;
    projectId: string;
    binding: BindingType;
    quantity: number;
    manufacturingCostCents: number;
    selectedShipping: ShippingOption;
    availableShippingOptions: ShippingOption[];
    serviceFeeCents: number;
    totalCostCents: number;
    currency: string;
    expiresAt: string;
}
export interface PrintOrder {
    id: string;
    projectId: string;
    status: OrderStatus;
    stripePaymentIntentId?: string;
    printerOrderId?: string;
    quote: PrintQuote;
    shippingAddress: ShippingAddress;
    trackingNumber?: string;
    trackingUrl?: string;
    createdAt: string;
    updatedAt: string;
}
export interface PluginSettings {
    defaultAuthorName: string;
    defaultPublisherImprint: string;
    defaultCopyrightHolder: string;
    defaultCopyrightNotice: string;
    defaultWebsite: string;
    defaultPublisherContact: string;
    defaultShippingAddress?: ShippingAddress;
    backendApiUrl: string;
    printEnvironment: 'sandbox' | 'production';
}
export declare const DEFAULT_PLUGIN_SETTINGS: PluginSettings;
//# sourceMappingURL=types.d.ts.map