export interface ImageVariant {
    path: string;
    publicPath: string;
    width: number;
    height: number;
    size: number;
    format: string;
}
export interface Image {
    fileId: string;
    imageId: string;
    status: "completed" | "failed";
    original: ImageVariant;
    variants: Record<string, ImageVariant>;
    metadata: {
        originalFormat: string;
        originalSize: number;
        exifStripped: boolean;
        processingTime: number;
    };
    createdAt: string;
}
interface BaseImageOptions {
    quality?: number;
    format?: "webp" | "jpeg" | "png" | "original";
    stripExif?: boolean;
    pathParts?: string[];
    entityId?: string;
    commentId?: string;
    spaceId?: string;
    onProgress?: (progress: number) => void;
}
export interface ExactDimensionsMode extends BaseImageOptions {
    mode: "exact-dimensions";
    dimensions: Record<string, {
        width: number;
        height: number;
    }>;
    fit?: "cover" | "contain" | "inside" | "outside";
}
export interface AspectRatioWidthMode extends BaseImageOptions {
    mode: "aspect-ratio-width-based";
    aspectRatio: {
        width: number;
        height: number;
    };
    widths: Record<string, number>;
    fit?: "cover" | "contain" | "inside" | "outside";
}
export interface AspectRatioHeightMode extends BaseImageOptions {
    mode: "aspect-ratio-height-based";
    aspectRatio: {
        width: number;
        height: number;
    };
    heights: Record<string, number>;
    fit?: "cover" | "contain" | "inside" | "outside";
}
export interface OriginalAspectMode extends BaseImageOptions {
    mode: "original-aspect";
    sizes: Record<string, number>;
    fit?: "inside" | "outside";
}
export interface MultiAspectRatioMode extends BaseImageOptions {
    mode: "multi-aspect-ratio";
    aspectRatios: Array<{
        width: number;
        height: number;
    }>;
    sizes: Record<string, number>;
    fit?: "cover" | "contain" | "inside" | "outside";
}
export type UploadImageOptions = ExactDimensionsMode | AspectRatioWidthMode | AspectRatioHeightMode | OriginalAspectMode | MultiAspectRatioMode;
export {};
