import { ILogger } from './Logger';
import { UnifiAccess } from './UnifiAccess';
import { UnifiAccessClient } from './UnifiAccessClient';
import { UnifiAccessPlatform } from './UnifiAccessPlatform';
export declare class Mqtt {
    private readonly platform;
    private readonly unifi;
    private readonly config;
    private readonly logger;
    private readonly emitter;
    private _state;
    private _online;
    private client?;
    constructor(platform: UnifiAccessPlatform, unifi: UnifiAccessClient, config: Mqtt.Config, logger: ILogger);
    start(): Promise<void>;
    close(): Promise<void>;
    get state(): Mqtt.State;
    get online(): boolean;
    private onMessage;
    private publish;
    private stripTopic;
    private fullTopic;
}
export declare namespace Mqtt {
    type State = 'init' | 'starting' | 'started' | 'closing' | 'closed';
    type Config = {
        host: string;
        port?: number;
        baseTopic?: string;
        auth?: {
            username: string;
            password: string;
        };
        events?: Array<UnifiAccess.Message['type']>;
    };
}
//# sourceMappingURL=mqtt.d.ts.map