import type { API, Characteristic, DynamicPlatformPlugin, Logging, PlatformAccessory, PlatformConfig, Service } from 'homebridge';
export interface Device {
    name: string;
    origName: string;
    host: string;
    port: number;
    source: string;
    fqdn: string;
    maxVolume?: number;
    minVolume?: number;
    inputSwitches?: string[];
    listeningMode?: string;
    listeningModeFallback?: string;
    listeningModeOther?: string;
}
/**
 * PioneerAvrPlatform
 * This class serves as the main entry point for the plugin, where user configuration is parsed,
 * accessories are registered, and discovered devices are managed.
 */
export declare class PioneerAvrPlatform implements DynamicPlatformPlugin {
    readonly log: Logging;
    readonly config: PlatformConfig;
    readonly api: API;
    readonly service: typeof Service;
    readonly characteristic: typeof Characteristic;
    platformName: string;
    pluginName: string;
    private prefsDir;
    private homebridgeConfigPath;
    accessories: PlatformAccessory[];
    private readonly TELNET_PORTS;
    private readonly TARGET_NAME;
    private readonly MAX_ATTEMPTS;
    private readonly RETRY_DELAY;
    /**
     * Cache for storing discovered receivers and their inputs.
     * The structure maps each host to its corresponding input data.
     */
    cachedReceivers: Map<string, {
        inputs: {
            id: string;
            name: string;
        }[];
    }>;
    devicesFound: any[];
    constructor(log: Logging, config: PlatformConfig, api: API);
    /**
     * Cleans up old or invalid cached accessories from Homebridge.
     * Filters cached accessories to remove those no longer managed by the current plugin,
     * identified by matching their plugin name against expected identifiers (e.g., 'homebridge-pioneer-avr', 'vsx').
     * Ensures the cache remains accurate and prevents stale accessories from being loaded.
     */
    cleanCachedAccessories(): void;
    /**
     * Invoked when Homebridge restores cached accessories from disk at startup.
     * Sets up event handlers for each cached accessory.
     */
    configureAccessory(accessory: PlatformAccessory): void;
    /**
     * Initiates the device discovery process or uses a manually configured device.
     * Attempts up to MAX_ATTEMPTS times if no devices are found, with a delay of RETRY_DELAY between attempts.
     */
    discoverDevices(): Promise<void>;
    /**
     * Updates the config.schema.json file with the current device settings and inputs.
     */
    updateConfigSchema(foundDevicesin: any[], host?: string, inputs?: {
        id: string;
        name: string;
        type: number;
    }[]): void;
    /**
     * Processes each discovered or manually configured device asynchronously.
     * Registers or restores devices in Homebridge as necessary.
     *
     * @param foundDevices - List of devices found during discovery or configured manually
     */
    loopDevices(foundDevices: any[]): Promise<void>;
}
//# sourceMappingURL=pioneer-avr-platform.d.ts.map