import type { UiBaseProps } from "../types";
import type { SelectOptionKey } from "./Select";
type SerializableOptionRecord = Record<string, unknown>;
type SerializableOptionKeyField<TOption extends SerializableOptionRecord> = {
    [K in keyof TOption]: Extract<TOption[K], SelectOptionKey> extends never ? never : K;
}[keyof TOption];
type SerializableOptionValue<TOption extends SerializableOptionRecord, TOptionKey extends SerializableOptionKeyField<TOption>> = Extract<TOption[TOptionKey], SelectOptionKey>;
export interface SerializableSelectProps<TOption extends SerializableOptionRecord, TOptionKey extends SerializableOptionKeyField<TOption>, TOptionLabel extends keyof TOption> extends Omit<UiBaseProps<SerializableOptionValue<TOption, TOptionKey> | undefined>, "onChange"> {
    options: readonly TOption[];
    onChange: (value: SerializableOptionValue<TOption, TOptionKey> | undefined) => void;
    optionKey: TOptionKey;
    optionLabel: TOptionLabel;
    renderCode?: true;
    className?: string;
    clearable?: boolean;
}
export declare function SerializableSelect<TOption extends SerializableOptionRecord, TOptionKey extends SerializableOptionKeyField<TOption>, TOptionLabel extends keyof TOption>({ label, description, disabled, placeholder, size, options, value, onChange, optionKey, optionLabel, renderCode, className, clearable }: SerializableSelectProps<TOption, TOptionKey, TOptionLabel>): import("react").JSX.Element;
export {};
//# sourceMappingURL=SerializableSelect.d.ts.map