import { Transformation } from '../../../types/src/asset-link-format';
import { GalleryItem } from '../../../types/src/gallery-item';
import { ReactiveController, ReactiveElement } from 'lit';

export type ExtendedGalleryItem = GalleryItem & {
    [key: string]: string | undefined;
};
type FetchImageControllerOptions = {
    maxEnd?: number;
    pageSize?: number;
    token?: string;
};
export declare function isSupportedImageExtension(extension: string): boolean;
export declare class FetchImageController implements ReactiveController {
    private readonly host;
    private data;
    private folderId;
    private parentFolderIdentifier;
    private readonly fetchedPages;
    private totalCount;
    private maxEnd;
    private pageSize;
    private readonly authToken;
    constructor(host: ReactiveElement, options?: FetchImageControllerOptions);
    get totalDataCount(): number;
    fetchImages({ end, extraFields, format, start, transformations, }: {
        end: number;
        extraFields: string[];
        format?: string;
        start: number;
        transformations?: Transformation[];
    }): Promise<ExtendedGalleryItem[] | undefined>;
    fetchImagesInFolderBySlide({ activeSlide, extraFields, folderId, forceRefetch, format, minLimit, noPlaceholders, transformations, }: {
        activeSlide: number;
        extraFields?: string[];
        folderId: string;
        forceRefetch?: boolean;
        format?: string;
        minLimit?: number;
        noPlaceholders?: boolean;
        transformations?: Transformation[];
    }): Promise<ExtendedGalleryItem[]>;
    fetchImagesByIDs({ extraFields, format, recordIds, transformations, }: {
        extraFields?: string[];
        format?: string;
        recordIds: string[];
        transformations?: Transformation[];
    }): Promise<ExtendedGalleryItem[]>;
    fetchImagesInFolderByPage({ extraFields, folderId, forceRefetch, format, noPlaceholders, page, pageSize, transformations, }: {
        extraFields?: string[];
        folderId: string;
        forceRefetch?: boolean;
        format?: string;
        noPlaceholders?: boolean;
        page: number;
        pageSize?: number;
        transformations?: Transformation[];
    }): Promise<ExtendedGalleryItem[]>;
    fetchImagesInFolderByChunk({ chunkSize: rawChunkSize, end, extraFields, folderId, forceRefetch, format, start, transformations, }: {
        chunkSize?: number;
        end?: number;
        extraFields?: string[];
        folderId: string;
        forceRefetch?: boolean;
        format?: string;
        start?: number;
        transformations?: Transformation[];
    }): AsyncGenerator<ExtendedGalleryItem[], void, unknown>;
    hostConnected?(): void;
    hostDisconnected?(): void;
    private resolveParentFolderIdentifier;
    private resetPageCache;
    private resetFolderState;
}
export {};
