import EventEmitter from 'events';
import { AnsiLogger } from 'matterbridge/logger';
import { Config } from './config-types.js';
import { DysonMqttClient } from './dyson-mqtt-client.js';
export interface DysonMqttSubscribeConfig {
    command: string;
    subscribe: string[];
    other?: string[];
}
export interface DysonMqttSubscribeEventMap {
    error: [unknown];
    subscribed: [];
}
export type DysonMqttTopic = 'subscribed' | 'command' | 'expected' | 'unexpected';
export declare class DysonMqttSubscribe extends EventEmitter<DysonMqttSubscribeEventMap> {
    readonly log: AnsiLogger;
    readonly mqtt: DysonMqttClient;
    readonly config: Config;
    readonly topics: DysonMqttSubscribeConfig;
    readonly root_topic: string;
    readonly username: string;
    constructor(log: AnsiLogger, mqtt: DysonMqttClient, config: Config, topics: DysonMqttSubscribeConfig, root_topic: string, username: string);
    subscribe(): Promise<void>;
    checkTopic(topic: string): DysonMqttTopic;
    get commandTopic(): string;
    replaceTopicPlaceholders(topic: string): string;
}
//# sourceMappingURL=dyson-mqtt-subscribe.d.ts.map