export declare enum RPCRequestMethod { COMMISSION = "commission", DECOMMISSION = "decommission", GET_DEVICE_INFO = "getDeviceInfo", GET_PRODUCT_INFO = "getProductInfo", ASSOCIATE_USER = "associateUser", GET_INVITATION_CODE = "getInvitationCode", CREATE_AND_PAIR = "createAndPair", PAIR_CHILD = "pair", LIST_CHILDREN = "list", REMOVE_CHILD = "remove", GET = "get", SET = "set", GET_STATUS = "getStatus" } export declare enum AccessLevel { OWNER = "owner", GUEST = "guest", ADMIN = "admin" } export interface CommissionParams { productId: string; force?: boolean; } export interface CommissionResult { productId: string; deviceId: string; } export interface GetDeviceInfoResult { productId: string; deviceId: string; } export declare enum FirmwareStatus { CREATED = "CREATED", PROCESSING = "PROCESSING", READY = "READY", PROCESSING_ERROR = "PROCESSING_ERROR", PROCESSING_PENDING = "PROCESSING_PENDING" } interface FirmwareRelease { productId: string; version: string; status: FirmwareStatus; labels: string[]; md5?: string; crc?: string; } export interface GetProductInfoResult { id: string; deviceType: string; name: string; manufacturer: string; brand: string; model: string; createdAt: string; updatedAt: string; firmwareRelease: FirmwareRelease[]; [prop: string]: any; } export interface AssociateUserParams { deviceId: string; userId: string; accessLevel: AccessLevel; } export interface AssociateUserResult { userId: string; accessLevel: AccessLevel; } export interface GetInvitationCodeParams { accessLevel: AccessLevel; userId: string; expiration?: number; } export interface GetInvitationCodeResult { invitationCode: string; } export interface GetStatusResult { commissioned: boolean; deviceId?: string; productId?: string; } export interface GetStateResult { [key: string]: any; } export interface SetStateParams { [key: string]: any; } export interface SetStateResult { [key: string]: any; } export interface CreateAndPairParams { productId: string; } export interface CreateAndPairResult { deviceId: string; productId: string; } export interface PairChildParams { deviceId: string; } export interface PairChildResult { deviceId: string; productId: string; } export interface ListChildrenResult { id: string; } export interface RemoveChildParams { deviceId: string; } export interface RPCPayload { requestId: string; method: string; params: RPCParams; } export interface RPCSuccessPayload { requestId: string; result: RPCResult; } export interface RPCFailurePayload { requestId: string; error: { code: number; message: string; }; } export declare type RPCResponsePayload = RPCSuccessPayload | RPCFailurePayload; export declare type RPCResult = CommissionResult | CreateAndPairResult | GetInvitationCodeResult | GetStateResult | SetStateResult | ListChildrenResult[] | PairChildResult | {}; export declare type RPCParams = CommissionParams | GetInvitationCodeParams | CreateAndPairParams | PairChildParams | RemoveChildParams | SetStateParams | {}; export {}; //# sourceMappingURL=rpc.d.ts.map