/** Minimal selected-asset shape exposed to callers that need the asset id. */
export interface SelectedMediaItem {
    id: string;
    storageKey: string;
    /** Normalized public URL (falls back to storageKey when absent). */
    url: string;
    filename: string;
    mimeType: string;
    width?: number;
    height?: number;
}
export interface MediaPickerModalProps {
    open: boolean;
    onClose: () => void;
    onSelect: (url: string, alt?: string) => void;
    /**
     * Optional richer callback fired alongside `onSelect` with the full media
     * item, so callers that need to store the asset id (not just the URL) can.
     */
    onSelectItem?: (item: SelectedMediaItem) => void;
    accept?: string;
    /**
     * Hide the "Upload New" tab and show only the existing library. Used where a
     * caller has its own upload path (e.g. brand assets, which upload with
     * format-preserving options) but still wants to reuse library assets.
     */
    libraryOnly?: boolean;
}
export declare function MediaPickerModal({ open, onClose, onSelect, onSelectItem, accept, libraryOnly, }: MediaPickerModalProps): import("react/jsx-runtime").JSX.Element | null;
//# sourceMappingURL=MediaPickerModal.d.ts.map