import { ReactNode } from "react";
import { SearchResultItem } from "../SearchBar/types";
export interface FilterChipData {
    filterId: string;
    value: string;
    label: string;
}
export interface ListPageLayoutProps {
    actionBar: ReactNode;
    pageHeader?: ReactNode;
    pagination?: ReactNode;
    children?: ReactNode;
}
export interface ListPageActionBarProps {
    searchValue: string;
    onSearchChange: (value: string) => void;
    onSearch?: ((term: string) => void) | (() => void);
    searchPlaceholder?: string;
    onFilterClick?: () => void;
    actions?: ReactNode;
    chips?: FilterChipData[];
    onRemoveChip?: (filterId: string, value: string) => void;
    onClearFilters?: () => void;
    /** Results to display in the search dropdown */
    searchResults?: SearchResultItem[];
    /** Whether a search request is in progress */
    isSearching?: boolean;
    /** Callback when a search result is clicked */
    onResultClick?: (item: SearchResultItem) => void;
    /** Debounce delay in milliseconds (default: 400) */
    debounceMs?: number;
    /** Minimum characters before triggering search (default: 2) */
    minSearchLength?: number;
}
