import React from 'react';

declare class OrganizeMedia extends React.Component<any, any, any> {
    constructor(props: any);
    state: {
        showFocalPoint: boolean;
        ctrlPressed: boolean;
        shiftPressed: boolean;
        editedItemIndex: number;
        factor: number;
        itemsVisibilityStatus: {};
        itemsSelectionStatus: {};
        shouldVerifySorting: any;
        isVerifySortingPopoverOpen: boolean;
        sortData: {};
        isEmptySearchResults: boolean;
        searchString: string;
        view: string;
        itemsViewSize: any;
        isSorting: boolean;
        draggingItemId: null;
        isSortingMultiple: boolean;
        page: number;
    };
    getItemSelectionStatus: (itemId: any) => any;
    getSelectedItems(): any;
    setAllItemsSelection(status: any, callback: any): void;
    setItemsSelection(ids: any, status: any): void;
    selectOnlyOneItem(id: any): void;
    getOriginalIndex: (visibleIndex: any) => any;
    onSortEnd: ({ oldIndex, newIndex }: {
        oldIndex: any;
        newIndex: any;
    }) => Promise<void>;
    handleOnSortEndOnConsumer: ({ oldIndex, newIndex }: {
        oldIndex: any;
        newIndex: any;
    }) => Promise<void>;
    handleDragStart: ({ index, itemId }: {
        index: any;
        itemId: any;
    }) => void;
    deleteSelectedItems(origin: any): Promise<void>;
    moveToPageHandler: (page: any) => Promise<void>;
    selectItem: (itemIdx: any) => void;
    onDeleteItem: (itemIdToDelete: any, origin: any) => void;
    onUpdateFocalPoint: (focalPoint: any) => Promise<void>;
    replaceItemHandler: (editedItem: any, origin: any) => Promise<void>;
    search: (text: any) => number;
    sort: (sortBy: any, order: any) => Promise<void>;
    closeVerifySortingPopover: () => void;
    setEditedItemIndex(editedItemIndex: any): void;
    shouldSelectInitialItem: boolean;
    hasPanelOpen: boolean;
    componentWillUnmount(): void;
    componentDidUpdate(prevProps: any): void;
    getInitialItemsStatus: () => {
        itemsVisibilityStatus: {};
        itemsSelectionStatus: {};
    };
    getVisibleItems(): any;
    getVisibleIndex: (index: any) => any;
    getSelectedItemsIds(): any;
    getSelectedItem: () => any;
    increasePageState: () => void;
    setItemsVisibility(ids: any, status: any, callback: any): void;
    removeIdsFromItemsVisibilityAndSelectionStatus(itemsIdsToDelete: any): void;
    shouldDisplayItemSettings: () => boolean;
    onKeyHandler: (e: any) => void;
    onDeleteItems: (itemsIdsToDelete: any, origin: any) => Promise<void>;
    linkButtonClickedHandler: () => void;
    verifySortIfNeeded: (sortBy: any, order: any) => void;
    setViewAndCalcItemsViewSize: (view: any) => void;
    imageList: () => React.JSX.Element;
    emptySearchResultsView: () => React.JSX.Element;
    itemSettings: (itemSettingsResponsiveWidth: any) => React.JSX.Element;
    verifySortingPopover: () => React.JSX.Element;
    organizedMediaMainView: (itemSettingsResponsiveWidth: any) => React.JSX.Element;
    topBar: () => React.JSX.Element;
    itemsViewSizeSlider: () => React.JSX.Element;
    render(): React.JSX.Element | null;
}

declare function sortByOrderIndex(items: any): any[];
declare function sortItem(items: any, oldIndex: any, newIndex: any): any;

declare function getItemMetadata(item: any): {
    height: any;
    width: any;
};
declare function getItemThumbnailUrl({ item, targetDimensions: { targetWidth, targetHeight }, isCoverOrLogo, thumbnailSpecificUrl, }: {
    item: any;
    targetDimensions: {
        targetWidth: any;
        targetHeight: any;
    };
    isCoverOrLogo: any;
    thumbnailSpecificUrl: any;
}): any;
declare function getDuration(videoItem: any): string | null;

declare namespace ADD_ITEMS_DIRECTION {
    let GALLERY_START: string;
    let GALLERY_END: string;
}
declare namespace NAME_NEW_ITEMS {
    let EMPTY: string;
    let FILE_NAME: string;
}
declare namespace SORTING_TYPE {
    let DRAGGED: string;
    let SORT_BY: string;
}

export { ADD_ITEMS_DIRECTION, NAME_NEW_ITEMS, OrganizeMedia, SORTING_TYPE, getDuration, getItemMetadata, getItemThumbnailUrl, sortByOrderIndex, sortItem };
