import { HomieTopologyElement, IHomieTopologyConfiguration } from "./framework";
import HomieDevice from "./HomieDevice";
import HomieProperty, { IHomiePropertyConfiguration } from "./HomieProperty";
export interface IHomieNodeConfiguration extends IHomieTopologyConfiguration {
    name: string;
    friendlyName: string;
    type: string;
    isRange: boolean;
    startRange?: number;
    endRange?: number;
}
export declare const DefaultConfiguration: IHomieNodeConfiguration;
export default class HomieNode extends HomieTopologyElement<HomieDevice, IHomieNodeConfiguration> {
    private properties$;
    constructor(parent: HomieDevice, config: IHomieNodeConfiguration);
    get type(): string;
    get isRange(): boolean;
    get startRange(): number | undefined;
    get endRange(): number | undefined;
    get properties(): HomieProperty[];
    addProperty: (config: IHomiePropertyConfiguration) => HomieProperty;
    getProperty: (propName: string) => HomieProperty;
    onConnect: () => void;
    onOffline: () => void;
    onDisconnect: () => void;
    onError: (err: Error) => void;
    onStatsInterval: () => void;
    publishPropertyValue: (property: HomieProperty, value: number | string | boolean, rangeIndex?: number | undefined) => void;
}
//# sourceMappingURL=HomieNode.d.ts.map