/// <reference types="node" />
export declare type DeviceMode = 'development' | 'production';
export declare type Cert = {
    iotKeys: {
        certificateArn: string;
        certificateId: string;
        certificatePem: string;
        keyPair: {
            PublicKey: string;
            PrivateKey: string;
        };
        rootCA: string;
    };
};
export declare type AddedDevice = {
    deviceId: number;
    deviceUUID: string;
    accessToken: string;
    refreshToken: string;
    idToken: string;
    iotKeys: {
        certificateArn: string;
        certificateId: string;
        certificatePem: string;
        keyPair: {
            PublicKey: string;
            PrivateKey: string;
        };
        rootCA: string;
    };
};
export declare type AaiDevice = {
    id: number;
    uuid: string;
    owner: string;
    friendly_name: string;
    description?: string;
    host_name: string;
    device_user_name?: string;
    hardware_ids?: string;
    device_hash?: string;
    deleted: boolean;
    created_at: string;
    updated_at: string;
    cognito_device_key?: string;
    mode?: string;
    iot_keys?: any;
    status?: string;
    device_log?: any;
    unit?: string;
    ip?: string;
    coordinates?: any;
};
export declare type RefreshedDevice = {
    accessToken: string;
    refreshToken: string;
    idToken: string;
};
export declare type ReleaseURLandKey = {
    key: string;
    presignedAppUrl: string;
};
export declare type ReleaseHistoryArray = ReleaseHistoryDict[];
export declare type ReleaseHistoryDict = {
    name: string;
    hash: string;
    version: string;
    timestamp: string;
    releaseHash: string;
    created_at: string;
    size: number;
};
export declare type ApplicationPackage = {
    tarFileName: string;
    tarFile: Buffer;
    releaseManifestName: string;
    releaseManifestFile: string;
};
export declare type ApplicationRecord = {
    hash: string;
    s3Path: string;
    projectId: number;
    name: string;
};
export declare type PipelineChannel = {
    name: string;
    uuid: string;
};
export declare function addDevice(device: any, deviceMode: DeviceMode): Promise<AddedDevice>;
export declare function refreshDevice(deviceId: string): Promise<RefreshedDevice>;
interface UploadResult {
    uploadURL: string;
}
export declare function getPresignedUrlAppUpload(fileName: string, fileType: string): Promise<UploadResult>;
export declare function usePresignedUrlAppUpload(presignedUrl: string, fileStream: any): Promise<void>;
export declare function insertAppRecord(record: ApplicationRecord): Promise<void>;
export declare function getReleaseURL(projectId: string, releaseHash?: string): Promise<ReleaseURLandKey>;
export declare function fetchAppReleaseHistory(projectUuid: string): Promise<ReleaseHistoryArray>;
export declare function getDeviceByUuid({ uuid }: {
    uuid: string;
}): Promise<AaiDevice>;
export declare function createAnalyticsPipeline(pipelineName: string, idTokenAuthorizationHeader: Record<string, string>): Promise<PipelineChannel>;
export declare function fetchAnalyticsPipelinesForOrg(idTokenAuthorizationHeader: Record<string, string>): Promise<PipelineChannel[]>;
export {};
//# sourceMappingURL=rest-client.d.ts.map