2018-11-05 08:18:18 +00:00
|
|
|
declare module 'balena-device-init' {
|
2018-01-04 16:17:43 +00:00
|
|
|
import * as Promise from 'bluebird';
|
2018-01-04 14:07:55 +00:00
|
|
|
import { EventEmitter } from 'events';
|
2018-11-05 08:18:18 +00:00
|
|
|
import { DeviceType } from 'balena-sdk';
|
2017-12-20 21:46:01 +00:00
|
|
|
|
|
|
|
interface OperationState {
|
2018-01-09 15:05:24 +00:00
|
|
|
operation:
|
|
|
|
| CopyOperation
|
|
|
|
| ReplaceOperation
|
|
|
|
| RunScriptOperation
|
|
|
|
| BurnOperation;
|
2017-12-20 21:46:01 +00:00
|
|
|
percentage: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface Operation {
|
|
|
|
command: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface CopyOperation extends Operation {
|
|
|
|
command: 'copy';
|
|
|
|
from: { path: string };
|
|
|
|
to: { path: string };
|
|
|
|
}
|
|
|
|
|
|
|
|
interface ReplaceOperation extends Operation {
|
|
|
|
command: 'replace';
|
|
|
|
copy: string;
|
|
|
|
replace: string;
|
|
|
|
file: {
|
|
|
|
path: string;
|
2018-01-04 14:07:55 +00:00
|
|
|
};
|
2017-12-20 21:46:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
interface RunScriptOperation extends Operation {
|
|
|
|
command: 'run-script';
|
|
|
|
script: string;
|
|
|
|
arguments?: string[];
|
|
|
|
}
|
|
|
|
|
|
|
|
interface BurnOperation extends Operation {
|
|
|
|
command: 'burn';
|
|
|
|
image?: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface BurnProgress {
|
|
|
|
type: 'write' | 'check';
|
|
|
|
percentage: number;
|
|
|
|
transferred: number;
|
|
|
|
length: number;
|
|
|
|
remaining: number;
|
|
|
|
eta: number;
|
|
|
|
runtime: number;
|
|
|
|
delta: number;
|
|
|
|
speed: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface InitializeEmitter {
|
|
|
|
on(event: 'stdout', callback: (msg: string) => void): void;
|
|
|
|
on(event: 'stderr', callback: (msg: string) => void): void;
|
|
|
|
on(event: 'state', callback: (state: OperationState) => void): void;
|
|
|
|
on(event: 'burn', callback: (state: BurnProgress) => void): void;
|
|
|
|
}
|
|
|
|
|
2018-11-05 08:18:18 +00:00
|
|
|
export function configure(
|
|
|
|
image: string,
|
|
|
|
manifest: DeviceType,
|
|
|
|
config: {},
|
|
|
|
options?: {},
|
|
|
|
): Promise<InitializeEmitter>;
|
|
|
|
|
2018-01-09 15:05:24 +00:00
|
|
|
export function initialize(
|
|
|
|
image: string,
|
2018-11-05 08:18:18 +00:00
|
|
|
manifest: DeviceType,
|
2018-01-09 15:05:24 +00:00
|
|
|
config: {},
|
|
|
|
): Promise<InitializeEmitter>;
|
2018-11-05 08:18:18 +00:00
|
|
|
|
|
|
|
export function getImageOsVersion(
|
|
|
|
image: string,
|
|
|
|
manifest: DeviceType,
|
|
|
|
): Promise<string | null>;
|
|
|
|
|
|
|
|
export function getImageManifest(image: string): Promise<DeviceType | null>;
|
2017-12-20 21:46:01 +00:00
|
|
|
}
|