import { TNode } from '@tempots/dom';
export type ValueOption<T> = {
    type: 'value';
    value: T;
    label: string;
    disabled?: boolean;
    before?: TNode;
    after?: TNode;
};
export type GroupOption<T> = {
    type: 'group';
    group: string;
    options: ValueOption<T>[];
    disabled?: boolean;
    before?: TNode;
    after?: TNode;
};
export type BreakOption = {
    type: 'break';
};
export type SelectOption<T> = ValueOption<T> | GroupOption<T> | BreakOption;
export type DropdownOption<T> = ValueOption<T> | GroupOption<T> | BreakOption;
export type AnyOption<T> = SelectOption<T> | DropdownOption<T>;
export declare const Option: {
    value: <T>(value: T, label: string, { disabled, before, after, }?: {
        disabled?: boolean;
        before?: TNode;
        after?: TNode;
    }) => ValueOption<T>;
    group: <T>(group: string, options: (ValueOption<T> | BreakOption)[], { disabled, before, after, }?: {
        disabled?: boolean;
        before?: TNode;
        after?: TNode;
    }) => GroupOption<T>;
    break: BreakOption;
    getValues: <T>(options: AnyOption<T>[]) => T[];
    contains: <T>(options: AnyOption<T>[], value: T, equality?: (a: T, b: T) => boolean) => boolean;
};
