import type { EmitterSubscription } from 'react-native';
import type { BaseNotify } from './notify';
import { BleServiceEnum, type ThetaService } from '../service';
/**
 * THETA camera device
 *
 * Call ThetaBle.scan() to obtain.
 */
export declare class ThetaDevice {
    /**
     * ID of THETA
     *
     * Granted by {@link theta-ble.scan}
     */
    readonly id: number;
    /**
     * Name of THETA.
     */
    readonly name: string;
    /**
     * UUID registered with THETA.
     */
    get uuid(): string | undefined;
    private _uuid?;
    eventListener: EmitterSubscription;
    notifyList: Map<string, ((notify: BaseNotify) => void) | undefined>;
    /**
     * Use in {@link theta-ble.scan}
     *
     * @param id ID obtained from scan
     * @param name THETA name
     */
    constructor(id: number, name: string);
    /**
     * Connect to THETA.
     */
    connect(uuid?: string): Promise<void>;
    /**
     * Whether connected to THETA.
     *
     * @return Whether connected or not.
     */
    isConnected(): Promise<boolean>;
    /**
     * Disconnect from THETA.
     */
    disconnect(): Promise<void>;
    getService(service: BleServiceEnum): Promise<ThetaService | undefined>;
    private newThetaService;
    /**
     * Clean up resources.
     *
     * Call when you are done using it.
     */
    release(): void;
}
//# sourceMappingURL=theta-device.d.ts.map