import Logger = require('../logger');
export interface DeviceResponse {
    [key: string]: any;
    status: 'success' | 'failed';
    message?: string;
}
export interface DeviceInfo {
    deviceType: string;
    arch: string;
}
export interface Status {
    appState: 'applied' | 'applying';
    overallDownloadProgress: null | number;
    containers: Array<{
        status: string;
        serviceName: string;
        appId: number;
        imageId: number;
        serviceId: number;
        containerId: string;
        createdAt: string;
    }>;
    images: Array<{
        name: string;
        appId: number;
        serviceName: string;
        imageId: number;
        dockerImageId: string;
        status: string;
        downloadProgress: null | number;
    }>;
}
export declare class DeviceAPI {
    private logger;
    private deviceAddress;
    constructor(logger: Logger, addr: string, port?: number);
    setTargetState(state: Record<string, any>): Promise<void>;
    getTargetState(): Promise<Record<string, any>>;
    getDeviceInformation(): Promise<DeviceInfo>;
    getContainerId(serviceName: string): Promise<string>;
    ping(): Promise<void>;
    getVersion(): Promise<string>;
    getStatus(): Promise<Status>;
    getLogStream(): Promise<import("balena-request").BalenaRequestStreamResult>;
    private getUrlForAction;
    private static sendRequest;
}
