import { Signal, TNode, Value } from '@tempots/dom';
import { InputOptions } from './input-options';
import { DropdownOption } from './option';
export type DropdownBaseOptions<T> = InputOptions<T> & {
    role: 'combobox' | 'dropdown';
    display: TNode;
    optionsSource: Value<DropdownOption<T>[]>;
    allowSpaceToggle?: Value<boolean>;
    onBeforeOpen?: () => void;
    onAfterOpen?: () => void;
    buildListboxContent: (ctx: {
        dropdownId: string;
        listboxId: string;
        focusedValue: Signal<T | null>;
        handleKeyDown: (ev: KeyboardEvent) => void;
        onSelect: (value: T) => void;
    }) => TNode;
};
export declare const DropdownBase: <T>(options: DropdownBaseOptions<T>) => import("@tempots/dom").Renderable;
