import { IoTizeDevice } from '@iotize/device-client.js';
import { SemanticVersion, TapConfigSchema } from '@iotize/device-client.js/config/schema/v1';
import { SchemaTapConfigurator } from '@iotize/device-client.js/configurator';
import { Observable } from 'rxjs';
declare module '@iotize/device-client.js/device/iotize-device' {
    interface IoTizeDevice {
        applyConfig(conf: TapConfigSchema): Observable<SchemaTapConfigurator.Event>;
        configurator: TapConfiguratorExtension;
    }
}
export declare function applyConfig(this: IoTizeDevice, schema: TapConfigSchema): Observable<SchemaTapConfigurator.Event>;
/**
 * Tempory class in order not to break SchemaTapConfigurator API
 */
declare class TapConfiguratorExtension {
    tap: IoTizeDevice;
    options: SchemaTapConfigurator.Options;
    constructor(tap: IoTizeDevice, options: SchemaTapConfigurator.Options);
    get _schemaConfigurator(): SchemaTapConfigurator;
    configure(schema: TapConfigSchema, options?: SchemaTapConfigurator.Options): Observable<SchemaTapConfigurator.Event>;
    setupConfigState(): Promise<void>;
    applyConfig(newVersion?: number | SemanticVersion): Promise<void>;
    isConfigured(): Promise<boolean>;
}
export {};
