import { GetItems as GetMediaLibraryItems, RemoveItems, UpdateItem, UploadItem } from "./pages/mediaLibrary/types/Api";
import { Locale } from "./types/Locale";
import { OnInsertFiles } from "./pages/types/Api";
import { DownloadItem, GetItems as GetStockPhotosItems } from "./pages/stockPhotos/types/Api";
import { GenerateFromText as AiGeneratedGenerateFromText, GenerateFromTextAndImage as AiGeneratedGenerateFromTextAndImage } from "./pages/aiGenerated/types/Api";
import { Colors } from "./utils/colors";
export interface MediaLibrary {
    getItems: GetMediaLibraryItems;
    uploadItem: UploadItem;
    removeItems: RemoveItems;
    updateItem: UpdateItem;
}
export interface StockPhotos {
    getItems: GetStockPhotosItems;
    downloadItem: DownloadItem;
}
export interface AspectRatioOption {
    value: string;
    label: string;
    width: number;
    height: number;
}
export interface Option {
    value: string;
    label: string;
}
export interface AiGenerated {
    generateFromText: AiGeneratedGenerateFromText;
    generateFromTextAndImage: AiGeneratedGenerateFromTextAndImage;
    isApiKeyProvided: () => Promise<boolean>;
    goToApiKeyTab: () => void;
    aspectRatioOptions?: AspectRatioOption[];
    styleOptions?: Option[];
    resolutionOptions?: Option[];
    thinkingModeOptions?: Option[];
    countOfGenerationsOptions?: Option[];
}
export interface Config {
    origin: string;
    development: boolean;
    acceptableTypes: string[];
    mediaLibrary: MediaLibrary;
    stockPhotos: StockPhotos;
    aiGenerated: AiGenerated;
    onClose: VoidFunction;
    onInsertFiles: OnInsertFiles;
    locale?: Locale;
    insertFilesType?: "none" | "single" | "multiple";
    height?: string;
    isRTL?: boolean;
    colors?: Colors;
}
export interface Props {
    config: Config;
}
export declare const App: ({ config }: Props) => JSX.Element;
