import * as Tp from 'thingpedia';
import type TierManager from '../../tiers/tier_manager';
import type Engine from '../../index';
interface ThingEngineDeviceState {
    kind: string;
    tier: Tp.Tier;
    identity?: string;
    cloudId?: string | null;
    developerKey?: string | null;
    [key: string]: unknown;
}
export default class ThingEngineDevice extends Tp.BaseDevice {
    tier: Tp.Tier;
    identity: string;
    address: string;
    own: true;
    cloudId: string | undefined;
    developerKey: string | null | undefined;
    _tierManager: TierManager;
    constructor(engine: Engine, state: ThingEngineDeviceState);
    updateState(state: ThingEngineDeviceState): void;
    private _checkCloudIdDevKey;
    get ownerTier(): Tp.Tier;
    checkAvailable(): Promise<Tp.Availability.AVAILABLE | Tp.Availability.OWNER_UNAVAILABLE>;
}
export {};
