import { GetItems as MediaLibraryGetItems, RemoveItems, UpdateItem, UploadItem } from "~/pages/mediaLibrary/types/Api";
import { DownloadItem, GetItems as StockPhotosGetItems } from "~/pages/stockPhotos/types/Api";
import { OnInsertFile, OnInsertFiles } from "~/pages/types/Api";
import { Locale } from "~/types/Locale";
export declare enum InsertFilesTypes {
    NONE = "none",
    SINGLE = "single",
    MULTIPLE = "multiple"
}
export interface BaseContext {
    __type: "context";
    origin: string;
    height: string | undefined;
    development: boolean;
    locale: Locale;
    acceptableTypes: string[];
    mediaLibrary: {
        getItems: MediaLibraryGetItems;
        uploadItem: UploadItem;
        removeItems: RemoveItems;
        updateItem: UpdateItem;
    };
    stockPhotos: {
        getItems: StockPhotosGetItems;
        downloadItem: DownloadItem;
    };
    onClose: VoidFunction;
}
export interface NoneContext extends BaseContext {
    insertFilesType: InsertFilesTypes.NONE;
}
export declare const isNoneContext: (v: Context) => v is NoneContext;
export interface SingleItemContext extends BaseContext {
    insertFilesType: InsertFilesTypes.SINGLE;
    onInsertFiles: OnInsertFile;
}
export declare const isSingleItemContext: (v: Context) => v is SingleItemContext;
export interface MultipleItemContext extends BaseContext {
    insertFilesType: InsertFilesTypes.MULTIPLE;
    onInsertFiles: OnInsertFiles;
}
export declare const isMultipleItemContext: (v: Context) => v is MultipleItemContext;
export type Context = NoneContext | SingleItemContext | MultipleItemContext;
export interface Error {
    __type: "error";
    message: string;
}
