import { HubResource, SelectableData, UserModel, HubResourceType, HubResourceValue, User } from '.';
import { ConflictLevel, IdeaState, IdeaType, Localization } from '../types';
import { Icon } from 'itlab-icons';
export declare class SelectableCollection<TData> {
    private readonly dataset;
    constructor(dataset?: SelectableData<TData>[]);
    static fromDataset<TData>(dataset: TData[], icon?: Icon): SelectableCollection<TData>;
    static fromUsers(users: User[] | UserModel[]): SelectableCollection<string>;
    static fromHubResources(hubResources: HubResource[] | HubResourceType[] | HubResourceValue[], iconStyle: 'app' | 'plain'): SelectableCollection<string>;
    static get ideaTypes(): SelectableCollection<IdeaType>;
    static get ideaStates(): SelectableCollection<IdeaState>;
    static get conflictLevels(): SelectableCollection<ConflictLevel>;
    values(): SelectableData<TData>[];
    get size(): number;
    get isEmpty(): boolean;
    get(data: TData | undefined): SelectableData<TData> | undefined;
    getValueOf<K extends keyof SelectableData<TData>>(data: TData | undefined, key: K): SelectableData<TData>[K] | undefined;
    getLocalization(prefix?: string): Localization;
}
