import { InjectionToken, Signal } from '@angular/core';
import { NxOptionComponent } from '../nx-option/nx-option.component';
export type NxSingleSelect<T = unknown> = {
    multiple: false;
    select: (option: NxOptionComponent<T>) => void;
    unselect: (option: NxOptionComponent<T>) => void;
    selected: Signal<NxOptionComponent<T> | undefined>;
};
export type NxMultiSelect<T = unknown> = {
    multiple: true;
    select: (option: NxOptionComponent<T>) => void;
    unselect: (option: NxOptionComponent<T>) => void;
    selected: Signal<NxOptionComponent<T>[]>;
};
export type NxSelect<T = unknown> = NxSingleSelect<T> | NxMultiSelect<T>;
export declare const NxSelectToken: InjectionToken<NxSelect<unknown>>;
