import type { MediaManagerMediaType, SDKAudioMedia, SDKFileMedia, SDKImageMedia, SDKVideoMedia } from './types.js';
export interface EditorMediaPanelOptions {
    mediaType?: MediaManagerMediaType;
    isMultiSelect?: boolean;
}
interface BMMediaPanelOptions {
    multiSelect?: boolean;
    onSuccess?: (data: $TSFixMe) => void;
    onCancel?: () => void;
}
interface BMMediaSDK {
    invoke(name: string, mediaType: MediaManagerMediaType, appDefId: string, options: BMMediaPanelOptions): void;
    registeredMethods?: {
        ['mediaManager.open']?: any;
    };
}
interface EditorMediaSDK {
    editor: {
        openMediaPanel: (token?: string, options?: EditorMediaPanelOptions) => Promise<any>;
    };
}
declare global {
    interface Window {
        ModuleRegistry?: BMMediaSDK;
        editorSDK?: EditorMediaSDK;
    }
}
export declare const createOpenMediaManagerFn: () => OpenMediaManagerFn | undefined;
type OpenOptions<M extends MediaManagerMediaType> = {
    mediaType: M;
    isMultiSelect?: boolean;
    appDefId?: string;
};
type OpenMediaManagerFn = {
    (options: OpenOptions<MediaManagerMediaType.ALL_MEDIA>): Promise<SDKFileMedia[]>;
    (options: OpenOptions<MediaManagerMediaType.IMAGE>): Promise<SDKImageMedia[]>;
    (options: OpenOptions<MediaManagerMediaType.VIDEO>): Promise<SDKVideoMedia[]>;
    (options: OpenOptions<MediaManagerMediaType.AUDIO>): Promise<SDKAudioMedia[]>;
};
export {};
//# sourceMappingURL=create-open-media-manager-fn.d.ts.map