import { HubResource, UserModel, HubResourceType, HubResourceValue, User } from '.';
import { ConflictLevel, IdeaState, IdeaType, Localization } from '../types';
import { Icon } from 'itlab-icons';
export declare class SelectableData<TData> {
    data: TData;
    label: string;
    description?: string;
    icon?: Icon;
    constructor(data: TData, label?: string | number | boolean, description?: string | number | boolean);
    constructor(data: TData, label?: string | number | boolean, icon?: Icon);
    constructor(data: TData, label?: string | number | boolean, description?: string | number | boolean, icon?: Icon);
    static fromUser(user: User | UserModel): SelectableData<string>;
    static fromHubResource(hubResource: HubResource | HubResourceType | HubResourceValue, iconStyle: 'app' | 'plain'): SelectableData<HubResourceValue>;
    static fromIdeaType(type: IdeaType): SelectableData<IdeaType>;
    static fromIdeaState(state: IdeaState): SelectableData<IdeaState>;
    static fromConflictLevel(level: ConflictLevel): SelectableData<ConflictLevel>;
    toString(): string;
    getValue<K extends keyof this>(key: K): this[K];
    getLocalization(prefix?: string): Localization;
}
