import { SyncBoxDevice } from './base.js';
import { type CharacteristicValue, PlatformAccessory, Service } from 'homebridge';
import { HueSyncBoxPlatform } from '../platform';
import { State } from '../state';
export declare abstract class BaseTvDevice extends SyncBoxDevice {
    protected readonly platform: HueSyncBoxPlatform;
    readonly accessory: PlatformAccessory;
    protected state: State;
    protected primaryAccessory?: PlatformAccessory | undefined;
    protected lightbulbService?: Service;
    protected inputServices: Service[];
    protected mainAccessory?: PlatformAccessory;
    protected readonly intensityToNumber: Map<string, number>;
    protected readonly numberToIntensity: Map<number, string>;
    protected readonly modeToNumber: Map<string, number>;
    protected readonly numberToMode: Map<number, string>;
    protected constructor(platform: HueSyncBoxPlatform, accessory: PlatformAccessory, state: State, primaryAccessory?: PlatformAccessory | undefined);
    protected handleConfiguredNameChange(value: CharacteristicValue): void;
    protected shouldBeOn(): boolean;
    protected abstract createInputServices(): void;
    protected abstract isLightbulbEnabled(): boolean;
    protected createLightbulbService(): void;
    setOnLightbulb(value: CharacteristicValue): void;
    protected getServiceType(): typeof import("hap-nodejs/dist/lib/definitions/ServiceDefinitions.js").Television;
    protected handleRemoteButton(value: CharacteristicValue): void;
    protected updateSources(services: Service[]): void;
    update(state: State): void;
    protected abstract updateTv(): void;
    private updateLightbulb;
    private setLightbulbUnresponsive;
    protected getInputService(name: string | undefined, position: string): Service;
    protected setVisibility(service: Service): (value: CharacteristicValue) => void;
    protected getMode(): string;
    protected abstract getConfiguredNamePropertyName(): string;
}
//# sourceMappingURL=baseTv.d.ts.map