import { type ReactElement } from "react";
import { Keyed, type AsyncTermSearcher, type Key } from "@synnaxlabs/x";
import { Input } from '../input';
import { type RenderProp } from '../util/renderProp';
export interface SearchProps<K extends Key = Key, E extends Keyed<K> = Keyed<K>> extends Input.OptionalControl<string> {
    searcher?: AsyncTermSearcher<string, K, E>;
    debounce?: number;
    children?: RenderProp<Input.Control<string>>;
    pageSize?: number;
}
export declare const Search: <K extends Key = Key, E extends Keyed<K> = Keyed<K>>({ debounce, children, searcher, value, onChange, pageSize, }: SearchProps<K, E>) => ReactElement | null;
