import { SelectFieldOption, SelectFieldUngroupedOption, SelectFieldGroupedOption, SelectFieldGroupByValue } from '../types';
export type Book = {
    id: string;
    author: string;
    title: string;
    genre: string;
};
/**
 * Small curated list of diverse books for simple examples
 */
export declare const books: Book[];
/**
 * Large dataset of 300 unique books for lazy loading demonstrations
 */
export declare const allBooks: Book[];
export declare const sourceOptions: SelectFieldOption[];
export declare function filterBooks(bookList: Book[], searchValue: string): Book[];
export declare function mapBookToOption(book: Book): SelectFieldUngroupedOption;
export declare const simulateFetchingPagedBooks: (searchValue: string, pageNumber: number, pageSize: number) => Promise<{
    data: Book[];
    count: number;
}>;
export declare const simulateFetchingOffsetBooks: (searchValue: string, offset: number, limit: number) => Promise<{
    data: Book[];
    count: number;
}>;
export type GroupByField = "genre" | "author";
export declare function mapBookToGroupedOption(book: Book, groupBy: GroupByField): SelectFieldGroupedOption;
export declare const simulateFetchingGroupedBooks: (groupBy: GroupByField) => (searchValue: string, previousGroupKey: SelectFieldGroupByValue | null) => Promise<{
    options: SelectFieldGroupedOption[];
    hasMore: boolean;
}>;
export declare const richContentOptions: SelectFieldOption[];
