import '@iotize/tap/service/impl/target';
import { Tap } from '@iotize/tap';
import { GPIOMode } from '@iotize/tap/service/impl/gpio';
export declare class GPIOManager {
    readonly tap: Tap;
    private _cache;
    constructor(tap: Tap);
    getPinByIndex(index: number): GPIOPin;
    /**
     * TODO min api version ?
     * @param options
     */
    readValues(indexs?: number[]): Promise<{
        index: number;
        value: boolean;
    }[]>;
    /**
     * TODO min api version ?
     * @param options
     */
    readConfig(indexs?: number[]): Promise<{
        index: number;
        value: GPIOMode;
    }[]>;
    private _readMuliple;
    writeValues(indexValues: {
        index: number;
        value: boolean;
    }[] | boolean): Promise<void>;
    /**
     * TODO min api version ?
     * @param options
     */
    writeConfig(indexValues: {
        index: number;
        value: GPIOMode;
    }[] | GPIOMode): Promise<void>;
}
export declare function pinIndexToConfigureAddress(index: number): number;
export declare class GPIOPin {
    readonly tap: Tap;
    readonly index: number;
    constructor(tap: Tap, index: number);
    readConfig(): Promise<GPIOMode>;
    writeConfig(options: {
        mode: GPIOMode;
    }): Promise<void>;
    readValue(): Promise<boolean>;
    writeValue(value: boolean): Promise<void>;
}
