import type { SubscribeTopicDescriptor, TopicComponent, TopicDescriptor } from '../ricos-types/index.js';
import type { Topic, Topics } from './models/topics.js';
export declare class RicosTopic implements Topic {
    private readonly _domain;
    private readonly _subdomain;
    private readonly _context;
    private readonly _event;
    isWildcard(): boolean;
    fromString(topic: TopicDescriptor): RicosTopic;
    get domain(): TopicComponent;
    get subdomain(): TopicComponent;
    get context(): TopicComponent;
    get event(): TopicComponent;
    private constructor();
    toString(): TopicDescriptor;
    equals(other: Topic): boolean;
    matches(glob: SubscribeTopicDescriptor): boolean;
    static fromString(topic: TopicDescriptor): RicosTopic;
}
export declare class RicosTopics implements Topics {
    private readonly topics;
    constructor(topics: RicosTopic[]);
    static of(topics: TopicDescriptor[]): RicosTopics;
    filter(predicate: (topic: RicosTopic) => boolean): RicosTopics;
    clear(): RicosTopics;
    asArray(): Topic[];
    getTopics(glob: SubscribeTopicDescriptor): RicosTopics;
}
//# sourceMappingURL=topics.d.ts.map