import { SelectableCollection, SelectableData } from '.';
import { Icon } from 'itlab-icons';
export type HubResourceType = 'newsroomNews' | 'eventsEvent' | 'demoHiveDemo' | 'techRadarBlip' | 'techRadarEdition' | 'techRadarTechScout' | 'podcastsEpisode' | 'booksBook' | 'hackschoolCourse' | 'hackschoolDoc' | 'teamMember' | 'newsletterIssue' | 'hubUser' | 'hubFile' | 'hubQuickLink' | 'hubComment' | 'hubConflict' | 'hubIdea' | 'hubChangelog';
declare const HubResourceValues: {
    readonly newsroomNews: "newsroom-news";
    readonly eventsEvent: "events-event";
    readonly demoHiveDemo: "demo-hive-demo";
    readonly techRadarBlip: "tech-radar-blip";
    readonly techRadarEdition: "tech-radar-edition";
    readonly techRadarTechScout: "tech-radar-tech-scout";
    readonly podcastsEpisode: "podcasts-podcast";
    readonly booksBook: "books-book";
    readonly hackschoolCourse: "hackschool-course";
    readonly hackschoolDoc: "hackschool-doc";
    readonly teamMember: "team-member";
    readonly newsletterIssue: "newsletter-issue";
    readonly hubUser: "hub-user";
    readonly hubFile: "hub-file";
    readonly hubQuickLink: "hub-quick-link";
    readonly hubComment: "hub-comment";
    readonly hubConflict: "hub-conflict";
    readonly hubIdea: "hub-idea";
    readonly hubChangelog: "hub-changelog";
};
export type HubResourceValue = (typeof HubResourceValues)[keyof typeof HubResourceValues];
export declare class HubResource {
    private readonly type;
    constructor(type: HubResourceType);
    static fromValue(value: HubResourceValue): HubResource;
    get value(): HubResourceValue;
    get label(): string;
    get icon(): Icon;
    get appIcon(): Icon;
    toString(): string;
    toSelectable(iconStyle: 'plain' | 'app'): SelectableData<HubResourceValue>;
    static get newsroomNews(): HubResource;
    static get eventsEvent(): HubResource;
    static get demoHiveDemo(): HubResource;
    static get techRadarBlip(): HubResource;
    static get techRadarEdition(): HubResource;
    static get techRadarTechScout(): HubResource;
    static get podcastsEpisode(): HubResource;
    static get booksBook(): HubResource;
    static get hackschoolCourse(): HubResource;
    static get hackschoolDoc(): HubResource;
    static get teamMember(): HubResource;
    static get newsletterIssue(): HubResource;
    static get hubUser(): HubResource;
    static get hubFile(): HubResource;
    static get hubQuickLink(): HubResource;
    static get hubComment(): HubResource;
    static get hubConflict(): HubResource;
    static get hubIdea(): HubResource;
    static get hubChangelog(): HubResource;
    static get types(): HubResourceType[];
    static getType(value: HubResourceValue): HubResourceType;
    static isValidTypeOf(hubResources: HubResource[], type: unknown): type is HubResourceType;
    static isValidType(type: unknown): type is HubResourceType;
    static get values(): HubResource[];
    static getValue(type: HubResourceType): HubResourceValue;
    static isValidValueOf(hubResources: HubResource[], value: unknown): value is HubResourceValue;
    static isValidValue(value: unknown): value is HubResourceValue;
    static get selectable(): SelectableCollection<string>;
    static get searchable(): HubResource[];
    static get searchableSelectable(): SelectableCollection<string>;
    static get commentable(): HubResource[];
    static get commentableSelectable(): SelectableCollection<string>;
}
export {};
