homebridge-appletv-enhanced
Version:
Plugin that exposes the Apple TV to HomeKit with much richer features than the vanilla Apple TV implementation of HomeKit.
86 lines • 2.84 kB
TypeScript
import type { PlatformConfig, Service } from 'homebridge';
import type { RocketRemoteKey } from './enums';
import type { NodePyATVDeviceState, NodePyATVMediaType } from '@sebbo2002/node-pyatv';
import type { LogLevel } from './LogLevelLogger';
export interface NodePyATVApp {
id: string;
name: string;
}
export type IInputs = Record<string, Service>;
export interface AppConfig {
configuredName: string;
identifier: number;
isConfigured: 0 | 1;
visibilityState: 0 | 1;
}
export type AppConfigs = Record<string, AppConfig>;
export interface CommonConfig {
activeIdentifier?: number;
avadaKedavraName?: string;
configuredName?: string;
homeInputName?: string;
showAvadaKedavra?: number;
showHomeInput?: number;
volumeFanName?: string;
}
export interface DeviceConfigOverride {
absoluteVolumeControl?: boolean;
avadaKedavraAppAmount?: number;
customInputURIs?: string[];
customPyatvCommands?: CustomPyATVCommandConfig[];
deviceStates?: NodePyATVDeviceState[];
disableCharacteristics?: boolean;
disableInputs?: boolean;
disableVolumeControlRemote?: boolean;
mac?: string;
mediaTypes?: NodePyATVMediaType[];
overrideAbsoluteVolumeControl?: boolean;
overrideAvadaKedavraAppAmount?: boolean;
overrideCustomInputURIs?: boolean;
overrideCustomPyatvCommands?: boolean;
overrideDeviceStates?: boolean;
overrideDisableCharacteristics?: boolean;
overrideDisableInputs?: boolean;
overrideDisableVolumeControlRemote?: boolean;
overrideMediaTypes?: boolean;
overrideRemoteKeysAsSwitch?: boolean;
overrideSetTopBox?: boolean;
remoteKeysAsSwitch?: RocketRemoteKey[];
setTopBox?: boolean;
}
export interface AppleTVEnhancedPlatformConfig extends Pick<PlatformConfig, '_bridge' | 'name' | 'platform'> {
absoluteVolumeControl?: boolean;
avadaKedavraAppAmount?: number;
customInputURIs?: string[];
customPyatvCommands?: CustomPyATVCommandConfig[];
deviceSpecificOverrides?: DeviceConfigOverride[];
deviceStates?: NodePyATVDeviceState[];
disableCharacteristics?: boolean;
disableInputs?: boolean;
disableVolumeControlRemote?: boolean;
discover?: {
blacklist?: string[];
multicast?: boolean;
unicast?: string[];
};
forceVenvRecreate?: boolean;
logLevel?: LogLevel;
mediaTypes?: NodePyATVMediaType[];
pythonExecutable?: string;
remoteKeysAsSwitch?: RocketRemoteKey[];
setTopBox?: boolean;
}
export interface AlternatePyATVDeviceOptions {
airplayCredentials?: string;
companionCredentials?: string;
mac: string;
}
export interface CustomPyATVCommandConfig {
command: string;
name: string;
}
export interface OutputDevice {
identifier: string;
name: string;
}
//# sourceMappingURL=interfaces.d.ts.map