import { ServiceType } from "@protobuf-ts/runtime-rpc";
import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
import type { IBinaryWriter } from "@protobuf-ts/runtime";
import type { BinaryReadOptions } from "@protobuf-ts/runtime";
import type { IBinaryReader } from "@protobuf-ts/runtime";
import type { PartialMessage } from "@protobuf-ts/runtime";
import { MessageType } from "@protobuf-ts/runtime";
import { Timestamp } from "../../google/protobuf/timestamp.js";
import { ReasonCode } from "./common.js";
import { ScopedRuntimeBindingAttachment } from "./common.js";
import { Struct } from "../../google/protobuf/struct.js";
/**
 * @generated from protobuf message nimi.runtime.v1.SendAppMessageRequest
 */
export interface SendAppMessageRequest {
    /**
     * @generated from protobuf field: string from_app_id = 1
     */
    fromAppId: string;
    /**
     * @generated from protobuf field: string to_app_id = 2
     */
    toAppId: string;
    /**
     * @generated from protobuf field: string subject_user_id = 3
     */
    subjectUserId: string;
    /**
     * @generated from protobuf field: string message_type = 4
     */
    messageType: string;
    /**
     * @generated from protobuf field: google.protobuf.Struct payload = 5
     */
    payload?: Struct;
    /**
     * @generated from protobuf field: bool require_ack = 6
     */
    requireAck: boolean;
    /**
     * @generated from protobuf field: nimi.runtime.v1.ScopedRuntimeBindingAttachment scoped_binding = 7
     */
    scopedBinding?: ScopedRuntimeBindingAttachment;
}
/**
 * @generated from protobuf message nimi.runtime.v1.SendAppMessageResponse
 */
export interface SendAppMessageResponse {
    /**
     * @generated from protobuf field: string message_id = 1
     */
    messageId: string;
    /**
     * @generated from protobuf field: bool accepted = 2
     */
    accepted: boolean;
    /**
     * @generated from protobuf field: nimi.runtime.v1.ReasonCode reason_code = 3
     */
    reasonCode: ReasonCode;
}
/**
 * @generated from protobuf message nimi.runtime.v1.SubscribeAppMessagesRequest
 */
export interface SubscribeAppMessagesRequest {
    /**
     * @generated from protobuf field: string app_id = 1
     */
    appId: string;
    /**
     * @generated from protobuf field: string subject_user_id = 2
     */
    subjectUserId: string;
    /**
     * @generated from protobuf field: string cursor = 3
     */
    cursor: string;
    /**
     * @generated from protobuf field: repeated string from_app_ids = 4
     */
    fromAppIds: string[];
    /**
     * @generated from protobuf field: nimi.runtime.v1.ScopedRuntimeBindingAttachment scoped_binding = 5
     */
    scopedBinding?: ScopedRuntimeBindingAttachment;
}
/**
 * @generated from protobuf message nimi.runtime.v1.AppMessageEvent
 */
export interface AppMessageEvent {
    /**
     * @generated from protobuf field: nimi.runtime.v1.AppMessageEventType event_type = 1
     */
    eventType: AppMessageEventType;
    /**
     * @generated from protobuf field: uint64 sequence = 2
     */
    sequence: string;
    /**
     * @generated from protobuf field: string message_id = 3
     */
    messageId: string;
    /**
     * @generated from protobuf field: string from_app_id = 4
     */
    fromAppId: string;
    /**
     * @generated from protobuf field: string to_app_id = 5
     */
    toAppId: string;
    /**
     * @generated from protobuf field: string subject_user_id = 6
     */
    subjectUserId: string;
    /**
     * @generated from protobuf field: string message_type = 7
     */
    messageType: string;
    /**
     * @generated from protobuf field: google.protobuf.Struct payload = 8
     */
    payload?: Struct;
    /**
     * @generated from protobuf field: nimi.runtime.v1.ReasonCode reason_code = 9
     */
    reasonCode: ReasonCode;
    /**
     * @generated from protobuf field: string trace_id = 10
     */
    traceId: string;
    /**
     * @generated from protobuf field: google.protobuf.Timestamp timestamp = 11
     */
    timestamp?: Timestamp;
}
/**
 * AppInstallStorageProjection mirrors the Runtime-owned app storage roots
 * (P-NAPP-015 / S-APP-011). All four roots are absolute paths under the
 * selected nimi_data directory.
 *
 * @generated from protobuf message nimi.runtime.v1.AppInstallStorageProjection
 */
export interface AppInstallStorageProjection {
    /**
     * @generated from protobuf field: string app_root = 1
     */
    appRoot: string;
    /**
     * @generated from protobuf field: string release_root = 2
     */
    releaseRoot: string;
    /**
     * @generated from protobuf field: string durable_data_root = 3
     */
    durableDataRoot: string;
    /**
     * @generated from protobuf field: string cache_root = 4
     */
    cacheRoot: string;
    /**
     * @generated from protobuf field: string temp_root = 5
     */
    tempRoot: string;
}
/**
 * AppInstallJob is the typed install job projection. It mirrors the
 * LocalEnvironmentDependencyJob shape: a stable job id, a typed state, the
 * resolved descriptor identity, a fail-closed failure detail, and a
 * retryable flag so a failed install can be retried or its partial files
 * removed without ever projecting as success.
 *
 * @generated from protobuf message nimi.runtime.v1.AppInstallJob
 */
export interface AppInstallJob {
    /**
     * @generated from protobuf field: string job_id = 1
     */
    jobId: string;
    /**
     * @generated from protobuf field: string app_id = 2
     */
    appId: string;
    /**
     * @generated from protobuf field: string release_descriptor_ref = 3
     */
    releaseDescriptorRef: string;
    /**
     * @generated from protobuf field: string installed_version = 4
     */
    installedVersion: string;
    /**
     * @generated from protobuf field: nimi.runtime.v1.AppInstallJobState state = 5
     */
    state: AppInstallJobState;
    /**
     * @generated from protobuf field: nimi.runtime.v1.AppInstallJobPhase phase = 6
     */
    phase: AppInstallJobPhase;
    /**
     * @generated from protobuf field: nimi.runtime.v1.AppInstallSourceKind source_kind = 7
     */
    sourceKind: AppInstallSourceKind;
    /**
     * sha256 is the digest computed over the downloaded/bundled artifact bytes.
     * It is populated only after the verify phase succeeds.
     *
     * @generated from protobuf field: string sha256 = 8
     */
    sha256: string;
    /**
     * @generated from protobuf field: int64 artifact_bytes = 9
     */
    artifactBytes: string;
    /**
     * @generated from protobuf field: nimi.runtime.v1.AppInstallStorageProjection storage = 10
     */
    storage?: AppInstallStorageProjection;
    /**
     * reason_code is the typed fail-closed reason on a failed job. It is never
     * collapsed into a generic value.
     *
     * @generated from protobuf field: nimi.runtime.v1.ReasonCode reason_code = 11
     */
    reasonCode: ReasonCode;
    /**
     * @generated from protobuf field: string failure_detail = 12
     */
    failureDetail: string;
    /**
     * @generated from protobuf field: bool retryable = 13
     */
    retryable: boolean;
    /**
     * @generated from protobuf field: string created_at = 14
     */
    createdAt: string;
    /**
     * @generated from protobuf field: string updated_at = 15
     */
    updatedAt: string;
    /**
     * kind distinguishes install / update / repair jobs. They share this shape
     * but the consumer never infers the lifecycle operation from the phase.
     *
     * @generated from protobuf field: nimi.runtime.v1.AppLifecycleJobKind kind = 16
     */
    kind: AppLifecycleJobKind;
    /**
     * previous_version is the active release version before an update or repair
     * job ran. It is empty for an install job.
     *
     * @generated from protobuf field: string previous_version = 17
     */
    previousVersion: string;
}
/**
 * @generated from protobuf message nimi.runtime.v1.InstallAppRequest
 */
export interface InstallAppRequest {
    /**
     * app_id resolves an admitted Nimi App registry row and its bound release
     * descriptor.
     *
     * @generated from protobuf field: string app_id = 1
     */
    appId: string;
    /**
     * confirmed records that the user confirmed the install requirement preview
     * (size, data roots, AI/profile requirements, permissions).
     *
     * @generated from protobuf field: bool confirmed = 2
     */
    confirmed: boolean;
}
/**
 * @generated from protobuf message nimi.runtime.v1.InstallAppResponse
 */
export interface InstallAppResponse {
    /**
     * @generated from protobuf field: nimi.runtime.v1.AppInstallJob job = 1
     */
    job?: AppInstallJob;
}
/**
 * @generated from protobuf message nimi.runtime.v1.GetAppInstallJobRequest
 */
export interface GetAppInstallJobRequest {
    /**
     * @generated from protobuf field: string job_id = 1
     */
    jobId: string;
}
/**
 * @generated from protobuf message nimi.runtime.v1.GetAppInstallJobResponse
 */
export interface GetAppInstallJobResponse {
    /**
     * @generated from protobuf field: nimi.runtime.v1.AppInstallJob job = 1
     */
    job?: AppInstallJob;
}
/**
 * @generated from protobuf message nimi.runtime.v1.ListAppInstallJobsRequest
 */
export interface ListAppInstallJobsRequest {
    /**
     * app_id optionally filters jobs to a single app. Empty lists every job.
     *
     * @generated from protobuf field: string app_id = 1
     */
    appId: string;
}
/**
 * @generated from protobuf message nimi.runtime.v1.ListAppInstallJobsResponse
 */
export interface ListAppInstallJobsResponse {
    /**
     * @generated from protobuf field: repeated nimi.runtime.v1.AppInstallJob jobs = 1
     */
    jobs: AppInstallJob[];
}
/**
 * @generated from protobuf message nimi.runtime.v1.WatchAppInstallJobEventsRequest
 */
export interface WatchAppInstallJobEventsRequest {
    /**
     * job_id optionally scopes the stream to a single install job. Empty
     * streams progress events for every install job.
     *
     * @generated from protobuf field: string job_id = 1
     */
    jobId: string;
}
/**
 * AppInstallJobEvent is one typed progress frame for a Watch stream. The
 * snapshot field carries the full typed job projection at the time of the
 * event so the consumer never reconstructs state from partial deltas.
 *
 * @generated from protobuf message nimi.runtime.v1.AppInstallJobEvent
 */
export interface AppInstallJobEvent {
    /**
     * @generated from protobuf field: uint64 sequence = 1
     */
    sequence: string;
    /**
     * @generated from protobuf field: nimi.runtime.v1.AppInstallJob job = 2
     */
    job?: AppInstallJob;
    /**
     * @generated from protobuf field: google.protobuf.Timestamp timestamp = 3
     */
    timestamp?: Timestamp;
}
/**
 * @generated from protobuf message nimi.runtime.v1.UninstallAppRequest
 */
export interface UninstallAppRequest {
    /**
     * @generated from protobuf field: string app_id = 1
     */
    appId: string;
    /**
     * delete_durable_data, when true, additionally removes the durable app data
     * root. It requires destructive_data_delete_confirmed.
     *
     * @generated from protobuf field: bool delete_durable_data = 2
     */
    deleteDurableData: boolean;
    /**
     * destructive_data_delete_confirmed records explicit user confirmation of
     * the separate destructive "Delete app data" flow with impact preview.
     *
     * @generated from protobuf field: bool destructive_data_delete_confirmed = 3
     */
    destructiveDataDeleteConfirmed: boolean;
}
/**
 * AppUninstallResult is the typed uninstall projection. Uninstall removes
 * release payloads by default and keeps durable data unless destructive
 * deletion was explicitly confirmed.
 *
 * @generated from protobuf message nimi.runtime.v1.AppUninstallResult
 */
export interface AppUninstallResult {
    /**
     * @generated from protobuf field: string app_id = 1
     */
    appId: string;
    /**
     * @generated from protobuf field: bool release_removed = 2
     */
    releaseRemoved: boolean;
    /**
     * @generated from protobuf field: bool durable_data_removed = 3
     */
    durableDataRemoved: boolean;
    /**
     * @generated from protobuf field: nimi.runtime.v1.AppInstallStorageProjection storage = 4
     */
    storage?: AppInstallStorageProjection;
    /**
     * @generated from protobuf field: nimi.runtime.v1.ReasonCode reason_code = 5
     */
    reasonCode: ReasonCode;
}
/**
 * @generated from protobuf message nimi.runtime.v1.UninstallAppResponse
 */
export interface UninstallAppResponse {
    /**
     * result is the typed uninstall projection carrying the K-APP-014
     * durable-data retention semantics (release_removed / durable_data_removed).
     *
     * @generated from protobuf field: nimi.runtime.v1.AppUninstallResult result = 1
     */
    result?: AppUninstallResult;
    /**
     * job is the watchable uninstall lifecycle job (K-APP-017,
     * AppLifecycleJobKind=APP_LIFECYCLE_JOB_KIND_UNINSTALL). It is the single
     * live-job truth source for the `uninstalling` Apps card state and can be
     * followed via WatchAppInstallJobEvents. A failed uninstall is recorded as a
     * recoverable job and is never projected as success.
     *
     * @generated from protobuf field: nimi.runtime.v1.AppInstallJob job = 2
     */
    job?: AppInstallJob;
}
/**
 * @generated from protobuf message nimi.runtime.v1.UpdateAppRequest
 */
export interface UpdateAppRequest {
    /**
     * app_id resolves an admitted Nimi App registry row whose bound release
     * descriptor advanced past the currently installed version.
     *
     * @generated from protobuf field: string app_id = 1
     */
    appId: string;
    /**
     * confirmed records that the user confirmed the update impact preview
     * (version, size, breaking-vs-non-breaking impact). It is required for a
     * required (breaking) update and ignored for a non-breaking update.
     *
     * @generated from protobuf field: bool confirmed = 2
     */
    confirmed: boolean;
}
/**
 * @generated from protobuf message nimi.runtime.v1.UpdateAppResponse
 */
export interface UpdateAppResponse {
    /**
     * job is the typed update job projection. It reuses the AppInstallJob shape
     * with kind=APP_LIFECYCLE_JOB_KIND_UPDATE.
     *
     * @generated from protobuf field: nimi.runtime.v1.AppInstallJob job = 1
     */
    job?: AppInstallJob;
}
/**
 * @generated from protobuf message nimi.runtime.v1.HealthRepairAppRequest
 */
export interface HealthRepairAppRequest {
    /**
     * app_id resolves the admitted Nimi App registry row whose lifecycle job is
     * being repaired.
     *
     * @generated from protobuf field: string app_id = 1
     */
    appId: string;
    /**
     * action is the typed repair action. Only the four admitted tokens are
     * accepted; any other value fails closed.
     *
     * @generated from protobuf field: nimi.runtime.v1.AppHealthRepairAction action = 2
     */
    action: AppHealthRepairAction;
    /**
     * job_id optionally targets a specific lifecycle job for cancel/retry. When
     * empty, cancel/retry resolve the most recent recoverable job for the app.
     *
     * @generated from protobuf field: string job_id = 3
     */
    jobId: string;
}
/**
 * @generated from protobuf message nimi.runtime.v1.HealthRepairAppResponse
 */
export interface HealthRepairAppResponse {
    /**
     * job is the typed lifecycle job projection produced by the repair action.
     * cancel returns the cancelled job; retry/repair/reinstall return the new
     * in-flight job. A failed repair is never projected as success.
     *
     * @generated from protobuf field: nimi.runtime.v1.AppInstallJob job = 1
     */
    job?: AppInstallJob;
}
/**
 * AppOpenScopeRef is the explicit canonical app-launch AIConfig scope a
 * caller must carry to open a Nimi App (K-APP-017 / P-AISC-007). It is the
 * app-shape AIScopeRef: kind is always `app`; owner_id is the admitted Nimi
 * App registry app_id and must equal the app_id being opened; surface_id is
 * optional and only set when the app's manifest declares a stable AI feature
 * surface. OpenApp never infers this scope — a missing or mismatched
 * AppOpenScopeRef fails closed.
 *
 * @generated from protobuf message nimi.runtime.v1.AppOpenScopeRef
 */
export interface AppOpenScopeRef {
    /**
     * kind is the AIScopeRef kind discriminator. For OpenApp it is fixed to the
     * literal string `app`; any other value fails closed.
     *
     * @generated from protobuf field: string kind = 1
     */
    kind: string;
    /**
     * owner_id is the admitted Nimi App registry app_id (dot-separated app
     * identity, e.g. `nimi.avatar`). It must equal OpenAppRequest.app_id.
     *
     * @generated from protobuf field: string owner_id = 2
     */
    ownerId: string;
    /**
     * surface_id is the optional stable app-declared AI feature surface id.
     * Empty means the canonical app-level AI scope.
     *
     * @generated from protobuf field: string surface_id = 3
     */
    surfaceId: string;
}
/**
 * @generated from protobuf message nimi.runtime.v1.OpenAppRequest
 */
export interface OpenAppRequest {
    /**
     * app_id resolves an admitted Nimi App registry row
     * (admission_status=admitted, ordinary_visibility=ordinary-visible).
     *
     * @generated from protobuf field: string app_id = 1
     */
    appId: string;
    /**
     * scope is the explicit canonical app-launch AIConfig scope. It is
     * mandatory: OpenApp never infers launch scope (K-APP-017 / S-APP-003).
     *
     * @generated from protobuf field: nimi.runtime.v1.AppOpenScopeRef scope = 2
     */
    scope?: AppOpenScopeRef;
}
/**
 * AppOpenProjection is the typed Open-flow projection. It reports the
 * terminal state, the step the flow reached, the resolved launch scope, and a
 * fail-closed reason_code on every blocked branch.
 *
 * @generated from protobuf message nimi.runtime.v1.AppOpenProjection
 */
export interface AppOpenProjection {
    /**
     * @generated from protobuf field: string app_id = 1
     */
    appId: string;
    /**
     * @generated from protobuf field: nimi.runtime.v1.AppOpenState state = 2
     */
    state: AppOpenState;
    /**
     * reached_step is the last Open-flow step the launch executed. On a blocked
     * open it names the exact step that fail-closed.
     *
     * @generated from protobuf field: nimi.runtime.v1.AppOpenFlowStep reached_step = 3
     */
    reachedStep: AppOpenFlowStep;
    /**
     * launched is true only when state is APP_OPEN_STATE_LAUNCHED. It is never
     * inferred from process liveness or file existence.
     *
     * @generated from protobuf field: bool launched = 4
     */
    launched: boolean;
    /**
     * active_version is the active release version the launch resolved. Empty
     * when the open blocked before package verification.
     *
     * @generated from protobuf field: string active_version = 5
     */
    activeVersion: string;
    /**
     * scope echoes the resolved app-launch AIConfig scope. On a launched open
     * the Open flow has validated this scope as the canonical app-shape
     * AIScopeRef (P-AISC-007); the per-app first-launch AIConfig initialization
     * (S-AICONF-009) is finalized by the SDK/desktop AIConfig surface against
     * this validated scope — the AIConfig store is not Runtime-owned.
     *
     * @generated from protobuf field: nimi.runtime.v1.AppOpenScopeRef scope = 6
     */
    scope?: AppOpenScopeRef;
    /**
     * reason_code is the typed fail-closed reason on a blocked open, or
     * ACTION_EXECUTED on a launched open. It is never collapsed into a generic
     * value.
     *
     * @generated from protobuf field: nimi.runtime.v1.ReasonCode reason_code = 7
     */
    reasonCode: ReasonCode;
    /**
     * @generated from protobuf field: string detail = 8
     */
    detail: string;
}
/**
 * @generated from protobuf message nimi.runtime.v1.OpenAppResponse
 */
export interface OpenAppResponse {
    /**
     * @generated from protobuf field: nimi.runtime.v1.AppOpenProjection projection = 1
     */
    projection?: AppOpenProjection;
}
/**
 * @generated from protobuf enum nimi.runtime.v1.AppMessageEventType
 */
export declare enum AppMessageEventType {
    /**
     * @generated from protobuf enum value: APP_MESSAGE_EVENT_TYPE_UNSPECIFIED = 0;
     */
    APP_MESSAGE_EVENT_TYPE_UNSPECIFIED = 0,
    /**
     * @generated from protobuf enum value: APP_MESSAGE_EVENT_RECEIVED = 1;
     */
    APP_MESSAGE_EVENT_RECEIVED = 1,
    /**
     * @generated from protobuf enum value: APP_MESSAGE_EVENT_ACKED = 2;
     */
    APP_MESSAGE_EVENT_ACKED = 2,
    /**
     * @generated from protobuf enum value: APP_MESSAGE_EVENT_FAILED = 3;
     */
    APP_MESSAGE_EVENT_FAILED = 3
}
/**
 * AppInstallJobPhase is the typed install/update pipeline phase. It surfaces
 * the concrete step so the product Apps card can show "download / verify /
 * materialize / unpack / swap / evidence" instead of a generic spinner. It is
 * never inferred from transfer/process/file state. The same phase shape covers
 * install, update, and healthRepair jobs (K-APP-015 / K-APP-016).
 *
 * @generated from protobuf enum nimi.runtime.v1.AppInstallJobPhase
 */
export declare enum AppInstallJobPhase {
    /**
     * @generated from protobuf enum value: APP_INSTALL_JOB_PHASE_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * @generated from protobuf enum value: APP_INSTALL_JOB_PHASE_QUEUED = 1;
     */
    QUEUED = 1,
    /**
     * @generated from protobuf enum value: APP_INSTALL_JOB_PHASE_RESOLVE_DESCRIPTOR = 2;
     */
    RESOLVE_DESCRIPTOR = 2,
    /**
     * @generated from protobuf enum value: APP_INSTALL_JOB_PHASE_DOWNLOAD = 3;
     */
    DOWNLOAD = 3,
    /**
     * @generated from protobuf enum value: APP_INSTALL_JOB_PHASE_VERIFY = 4;
     */
    VERIFY = 4,
    /**
     * @generated from protobuf enum value: APP_INSTALL_JOB_PHASE_MATERIALIZE = 5;
     */
    MATERIALIZE = 5,
    /**
     * @generated from protobuf enum value: APP_INSTALL_JOB_PHASE_UNPACK = 6;
     */
    UNPACK = 6,
    /**
     * @generated from protobuf enum value: APP_INSTALL_JOB_PHASE_EVIDENCE = 7;
     */
    EVIDENCE = 7,
    /**
     * @generated from protobuf enum value: APP_INSTALL_JOB_PHASE_INSTALLED = 8;
     */
    INSTALLED = 8,
    /**
     * @generated from protobuf enum value: APP_INSTALL_JOB_PHASE_FAILED = 9;
     */
    FAILED = 9,
    /**
     * APP_INSTALL_JOB_PHASE_SWAP is the atomic active-release pointer swap of an
     * update job. It runs only after the new release is fully materialized and
     * digest-verified; the old release stays usable until the swap commits.
     *
     * @generated from protobuf enum value: APP_INSTALL_JOB_PHASE_SWAP = 10;
     */
    SWAP = 10,
    /**
     * APP_INSTALL_JOB_PHASE_CANCELLED is the terminal phase of a job cancelled
     * through HealthRepairApp(action=cancel).
     *
     * @generated from protobuf enum value: APP_INSTALL_JOB_PHASE_CANCELLED = 11;
     */
    CANCELLED = 11,
    /**
     * APP_INSTALL_JOB_PHASE_UNINSTALLED is the terminal phase of a completed
     * uninstall lifecycle job (K-APP-017). It is reached only by a job of kind
     * APP_LIFECYCLE_JOB_KIND_UNINSTALL after the release payload is removed.
     *
     * @generated from protobuf enum value: APP_INSTALL_JOB_PHASE_UNINSTALLED = 12;
     */
    UNINSTALLED = 12
}
/**
 * AppInstallJobState is the typed terminal/in-flight job state. It aligns with
 * the Platform P-NAPP-008 fail-closed projection: a failed install/update
 * never projects as success and always leaves a recoverable state.
 *
 * @generated from protobuf enum nimi.runtime.v1.AppInstallJobState
 */
export declare enum AppInstallJobState {
    /**
     * @generated from protobuf enum value: APP_INSTALL_JOB_STATE_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * @generated from protobuf enum value: APP_INSTALL_JOB_STATE_QUEUED = 1;
     */
    QUEUED = 1,
    /**
     * @generated from protobuf enum value: APP_INSTALL_JOB_STATE_IN_PROGRESS = 2;
     */
    IN_PROGRESS = 2,
    /**
     * @generated from protobuf enum value: APP_INSTALL_JOB_STATE_INSTALLED = 3;
     */
    INSTALLED = 3,
    /**
     * @generated from protobuf enum value: APP_INSTALL_JOB_STATE_FAILED = 4;
     */
    FAILED = 4,
    /**
     * APP_INSTALL_JOB_STATE_CANCELLED is the terminal state of a job cancelled
     * through HealthRepairApp(action=cancel). A cancelled job is recoverable via
     * retry and is never projected as success.
     *
     * @generated from protobuf enum value: APP_INSTALL_JOB_STATE_CANCELLED = 5;
     */
    CANCELLED = 5,
    /**
     * APP_INSTALL_JOB_STATE_UNINSTALLED is the terminal success state of an
     * uninstall lifecycle job (K-APP-017). It is reached only by a job of kind
     * APP_LIFECYCLE_JOB_KIND_UNINSTALL; a successful uninstall is never
     * projected as APP_INSTALL_JOB_STATE_INSTALLED.
     *
     * @generated from protobuf enum value: APP_INSTALL_JOB_STATE_UNINSTALLED = 6;
     */
    UNINSTALLED = 6
}
/**
 * AppLifecycleJobKind distinguishes the lifecycle operation that produced a
 * job. Install, update, healthRepair, and uninstall jobs share the
 * AppInstallJob shape but carry a distinct kind so the consumer never infers
 * intent from phase.
 *
 * @generated from protobuf enum nimi.runtime.v1.AppLifecycleJobKind
 */
export declare enum AppLifecycleJobKind {
    /**
     * @generated from protobuf enum value: APP_LIFECYCLE_JOB_KIND_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * @generated from protobuf enum value: APP_LIFECYCLE_JOB_KIND_INSTALL = 1;
     */
    INSTALL = 1,
    /**
     * @generated from protobuf enum value: APP_LIFECYCLE_JOB_KIND_UPDATE = 2;
     */
    UPDATE = 2,
    /**
     * @generated from protobuf enum value: APP_LIFECYCLE_JOB_KIND_REPAIR = 3;
     */
    REPAIR = 3,
    /**
     * APP_LIFECYCLE_JOB_KIND_UNINSTALL marks a watchable uninstall lifecycle
     * job (K-APP-017). UninstallApp emits a typed AppInstallJob of this kind so
     * the `uninstalling` Apps card state has a single live-job truth source. An
     * uninstall job never carries the install digest/download phases; it runs
     * through the materialize phase (release payload removal) to the installed
     * (completed) terminal phase, and a failed uninstall is recoverable.
     *
     * @generated from protobuf enum value: APP_LIFECYCLE_JOB_KIND_UNINSTALL = 4;
     */
    UNINSTALL = 4
}
/**
 * AppHealthRepairAction is the typed health/repair action token. It admits
 * only the four S-APP-002 tokens; no other action is accepted.
 *
 * @generated from protobuf enum nimi.runtime.v1.AppHealthRepairAction
 */
export declare enum AppHealthRepairAction {
    /**
     * @generated from protobuf enum value: APP_HEALTH_REPAIR_ACTION_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * @generated from protobuf enum value: APP_HEALTH_REPAIR_ACTION_CANCEL = 1;
     */
    CANCEL = 1,
    /**
     * @generated from protobuf enum value: APP_HEALTH_REPAIR_ACTION_RETRY = 2;
     */
    RETRY = 2,
    /**
     * @generated from protobuf enum value: APP_HEALTH_REPAIR_ACTION_REPAIR = 3;
     */
    REPAIR = 3,
    /**
     * @generated from protobuf enum value: APP_HEALTH_REPAIR_ACTION_REINSTALL = 4;
     */
    REINSTALL = 4
}
/**
 * AppInstallSourceKind distinguishes a bundled first-party install (no network
 * download; materialized from the atomic Nimi release bundle) from an external
 * immutable artifact install (HTTPS download + sha256 verification).
 *
 * @generated from protobuf enum nimi.runtime.v1.AppInstallSourceKind
 */
export declare enum AppInstallSourceKind {
    /**
     * @generated from protobuf enum value: APP_INSTALL_SOURCE_KIND_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * @generated from protobuf enum value: APP_INSTALL_SOURCE_KIND_BUNDLED = 1;
     */
    BUNDLED = 1,
    /**
     * @generated from protobuf enum value: APP_INSTALL_SOURCE_KIND_EXTERNAL_ARTIFACT = 2;
     */
    EXTERNAL_ARTIFACT = 2
}
/**
 * AppOpenFlowStep is the typed Open-flow step (K-APP-017). It surfaces the
 * concrete checkpoint the launch is at so a failed Open names the exact step
 * rather than a generic failure. It is never inferred.
 *
 * @generated from protobuf enum nimi.runtime.v1.AppOpenFlowStep
 */
export declare enum AppOpenFlowStep {
    /**
     * @generated from protobuf enum value: APP_OPEN_FLOW_STEP_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * RESOLVE_REGISTRY resolves the admitted Nimi App registry row.
     *
     * @generated from protobuf enum value: APP_OPEN_FLOW_STEP_RESOLVE_REGISTRY = 1;
     */
    RESOLVE_REGISTRY = 1,
    /**
     * VERIFY_PACKAGE verifies the materialized release package + install
     * evidence (active release pointer, digest-verified payload).
     *
     * @generated from protobuf enum value: APP_OPEN_FLOW_STEP_VERIFY_PACKAGE = 2;
     */
    VERIFY_PACKAGE = 2,
    /**
     * VERIFY_LIBRARY verifies the account app-library state for the app.
     *
     * @generated from protobuf enum value: APP_OPEN_FLOW_STEP_VERIFY_LIBRARY = 3;
     */
    VERIFY_LIBRARY = 3,
    /**
     * VERIFY_APP_DATA verifies the durable app-data root state.
     *
     * @generated from protobuf enum value: APP_OPEN_FLOW_STEP_VERIFY_APP_DATA = 4;
     */
    VERIFY_APP_DATA = 4,
    /**
     * VERIFY_PERMISSIONS verifies the app permissions are granted or
     * promptable.
     *
     * @generated from protobuf enum value: APP_OPEN_FLOW_STEP_VERIFY_PERMISSIONS = 5;
     */
    VERIFY_PERMISSIONS = 5,
    /**
     * ENSURE_AICONFIG ensures the app-scope AIConfig exists (first-launch
     * initialization per S-AICONF-009).
     *
     * @generated from protobuf enum value: APP_OPEN_FLOW_STEP_ENSURE_AICONFIG = 6;
     */
    ENSURE_AICONFIG = 6,
    /**
     * VALIDATE_MANIFEST validates the app manifest requirements.
     *
     * @generated from protobuf enum value: APP_OPEN_FLOW_STEP_VALIDATE_MANIFEST = 7;
     */
    VALIDATE_MANIFEST = 7,
    /**
     * LAUNCH is the terminal launch step: the runtime-owned app launch
     * supervision admits the app process/surface.
     *
     * @generated from protobuf enum value: APP_OPEN_FLOW_STEP_LAUNCH = 8;
     */
    LAUNCH = 8
}
/**
 * AppOpenState is the typed terminal Open-flow state. A blocked or failed
 * Open never projects as launched.
 *
 * @generated from protobuf enum nimi.runtime.v1.AppOpenState
 */
export declare enum AppOpenState {
    /**
     * @generated from protobuf enum value: APP_OPEN_STATE_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * APP_OPEN_STATE_LAUNCHED means the Open flow completed and the app launch
     * was admitted.
     *
     * @generated from protobuf enum value: APP_OPEN_STATE_LAUNCHED = 1;
     */
    LAUNCHED = 1,
    /**
     * APP_OPEN_STATE_BLOCKED means a verify step fail-closed before launch
     * (package/library/app-data/permission/AIConfig/manifest). It carries the
     * distinct typed reason_code; it is never collapsed into a generic value.
     *
     * @generated from protobuf enum value: APP_OPEN_STATE_BLOCKED = 2;
     */
    BLOCKED = 2
}
declare class SendAppMessageRequest$Type extends MessageType<SendAppMessageRequest> {
    constructor();
    create(value?: PartialMessage<SendAppMessageRequest>): SendAppMessageRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendAppMessageRequest): SendAppMessageRequest;
    internalBinaryWrite(message: SendAppMessageRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.SendAppMessageRequest
 */
export declare const SendAppMessageRequest: SendAppMessageRequest$Type;
declare class SendAppMessageResponse$Type extends MessageType<SendAppMessageResponse> {
    constructor();
    create(value?: PartialMessage<SendAppMessageResponse>): SendAppMessageResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendAppMessageResponse): SendAppMessageResponse;
    internalBinaryWrite(message: SendAppMessageResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.SendAppMessageResponse
 */
export declare const SendAppMessageResponse: SendAppMessageResponse$Type;
declare class SubscribeAppMessagesRequest$Type extends MessageType<SubscribeAppMessagesRequest> {
    constructor();
    create(value?: PartialMessage<SubscribeAppMessagesRequest>): SubscribeAppMessagesRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscribeAppMessagesRequest): SubscribeAppMessagesRequest;
    internalBinaryWrite(message: SubscribeAppMessagesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.SubscribeAppMessagesRequest
 */
export declare const SubscribeAppMessagesRequest: SubscribeAppMessagesRequest$Type;
declare class AppMessageEvent$Type extends MessageType<AppMessageEvent> {
    constructor();
    create(value?: PartialMessage<AppMessageEvent>): AppMessageEvent;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AppMessageEvent): AppMessageEvent;
    internalBinaryWrite(message: AppMessageEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.AppMessageEvent
 */
export declare const AppMessageEvent: AppMessageEvent$Type;
declare class AppInstallStorageProjection$Type extends MessageType<AppInstallStorageProjection> {
    constructor();
    create(value?: PartialMessage<AppInstallStorageProjection>): AppInstallStorageProjection;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AppInstallStorageProjection): AppInstallStorageProjection;
    internalBinaryWrite(message: AppInstallStorageProjection, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.AppInstallStorageProjection
 */
export declare const AppInstallStorageProjection: AppInstallStorageProjection$Type;
declare class AppInstallJob$Type extends MessageType<AppInstallJob> {
    constructor();
    create(value?: PartialMessage<AppInstallJob>): AppInstallJob;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AppInstallJob): AppInstallJob;
    internalBinaryWrite(message: AppInstallJob, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.AppInstallJob
 */
export declare const AppInstallJob: AppInstallJob$Type;
declare class InstallAppRequest$Type extends MessageType<InstallAppRequest> {
    constructor();
    create(value?: PartialMessage<InstallAppRequest>): InstallAppRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: InstallAppRequest): InstallAppRequest;
    internalBinaryWrite(message: InstallAppRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.InstallAppRequest
 */
export declare const InstallAppRequest: InstallAppRequest$Type;
declare class InstallAppResponse$Type extends MessageType<InstallAppResponse> {
    constructor();
    create(value?: PartialMessage<InstallAppResponse>): InstallAppResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: InstallAppResponse): InstallAppResponse;
    internalBinaryWrite(message: InstallAppResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.InstallAppResponse
 */
export declare const InstallAppResponse: InstallAppResponse$Type;
declare class GetAppInstallJobRequest$Type extends MessageType<GetAppInstallJobRequest> {
    constructor();
    create(value?: PartialMessage<GetAppInstallJobRequest>): GetAppInstallJobRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetAppInstallJobRequest): GetAppInstallJobRequest;
    internalBinaryWrite(message: GetAppInstallJobRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.GetAppInstallJobRequest
 */
export declare const GetAppInstallJobRequest: GetAppInstallJobRequest$Type;
declare class GetAppInstallJobResponse$Type extends MessageType<GetAppInstallJobResponse> {
    constructor();
    create(value?: PartialMessage<GetAppInstallJobResponse>): GetAppInstallJobResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetAppInstallJobResponse): GetAppInstallJobResponse;
    internalBinaryWrite(message: GetAppInstallJobResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.GetAppInstallJobResponse
 */
export declare const GetAppInstallJobResponse: GetAppInstallJobResponse$Type;
declare class ListAppInstallJobsRequest$Type extends MessageType<ListAppInstallJobsRequest> {
    constructor();
    create(value?: PartialMessage<ListAppInstallJobsRequest>): ListAppInstallJobsRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListAppInstallJobsRequest): ListAppInstallJobsRequest;
    internalBinaryWrite(message: ListAppInstallJobsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.ListAppInstallJobsRequest
 */
export declare const ListAppInstallJobsRequest: ListAppInstallJobsRequest$Type;
declare class ListAppInstallJobsResponse$Type extends MessageType<ListAppInstallJobsResponse> {
    constructor();
    create(value?: PartialMessage<ListAppInstallJobsResponse>): ListAppInstallJobsResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListAppInstallJobsResponse): ListAppInstallJobsResponse;
    internalBinaryWrite(message: ListAppInstallJobsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.ListAppInstallJobsResponse
 */
export declare const ListAppInstallJobsResponse: ListAppInstallJobsResponse$Type;
declare class WatchAppInstallJobEventsRequest$Type extends MessageType<WatchAppInstallJobEventsRequest> {
    constructor();
    create(value?: PartialMessage<WatchAppInstallJobEventsRequest>): WatchAppInstallJobEventsRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: WatchAppInstallJobEventsRequest): WatchAppInstallJobEventsRequest;
    internalBinaryWrite(message: WatchAppInstallJobEventsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.WatchAppInstallJobEventsRequest
 */
export declare const WatchAppInstallJobEventsRequest: WatchAppInstallJobEventsRequest$Type;
declare class AppInstallJobEvent$Type extends MessageType<AppInstallJobEvent> {
    constructor();
    create(value?: PartialMessage<AppInstallJobEvent>): AppInstallJobEvent;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AppInstallJobEvent): AppInstallJobEvent;
    internalBinaryWrite(message: AppInstallJobEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.AppInstallJobEvent
 */
export declare const AppInstallJobEvent: AppInstallJobEvent$Type;
declare class UninstallAppRequest$Type extends MessageType<UninstallAppRequest> {
    constructor();
    create(value?: PartialMessage<UninstallAppRequest>): UninstallAppRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UninstallAppRequest): UninstallAppRequest;
    internalBinaryWrite(message: UninstallAppRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.UninstallAppRequest
 */
export declare const UninstallAppRequest: UninstallAppRequest$Type;
declare class AppUninstallResult$Type extends MessageType<AppUninstallResult> {
    constructor();
    create(value?: PartialMessage<AppUninstallResult>): AppUninstallResult;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AppUninstallResult): AppUninstallResult;
    internalBinaryWrite(message: AppUninstallResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.AppUninstallResult
 */
export declare const AppUninstallResult: AppUninstallResult$Type;
declare class UninstallAppResponse$Type extends MessageType<UninstallAppResponse> {
    constructor();
    create(value?: PartialMessage<UninstallAppResponse>): UninstallAppResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UninstallAppResponse): UninstallAppResponse;
    internalBinaryWrite(message: UninstallAppResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.UninstallAppResponse
 */
export declare const UninstallAppResponse: UninstallAppResponse$Type;
declare class UpdateAppRequest$Type extends MessageType<UpdateAppRequest> {
    constructor();
    create(value?: PartialMessage<UpdateAppRequest>): UpdateAppRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpdateAppRequest): UpdateAppRequest;
    internalBinaryWrite(message: UpdateAppRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.UpdateAppRequest
 */
export declare const UpdateAppRequest: UpdateAppRequest$Type;
declare class UpdateAppResponse$Type extends MessageType<UpdateAppResponse> {
    constructor();
    create(value?: PartialMessage<UpdateAppResponse>): UpdateAppResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpdateAppResponse): UpdateAppResponse;
    internalBinaryWrite(message: UpdateAppResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.UpdateAppResponse
 */
export declare const UpdateAppResponse: UpdateAppResponse$Type;
declare class HealthRepairAppRequest$Type extends MessageType<HealthRepairAppRequest> {
    constructor();
    create(value?: PartialMessage<HealthRepairAppRequest>): HealthRepairAppRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: HealthRepairAppRequest): HealthRepairAppRequest;
    internalBinaryWrite(message: HealthRepairAppRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.HealthRepairAppRequest
 */
export declare const HealthRepairAppRequest: HealthRepairAppRequest$Type;
declare class HealthRepairAppResponse$Type extends MessageType<HealthRepairAppResponse> {
    constructor();
    create(value?: PartialMessage<HealthRepairAppResponse>): HealthRepairAppResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: HealthRepairAppResponse): HealthRepairAppResponse;
    internalBinaryWrite(message: HealthRepairAppResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.HealthRepairAppResponse
 */
export declare const HealthRepairAppResponse: HealthRepairAppResponse$Type;
declare class AppOpenScopeRef$Type extends MessageType<AppOpenScopeRef> {
    constructor();
    create(value?: PartialMessage<AppOpenScopeRef>): AppOpenScopeRef;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AppOpenScopeRef): AppOpenScopeRef;
    internalBinaryWrite(message: AppOpenScopeRef, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.AppOpenScopeRef
 */
export declare const AppOpenScopeRef: AppOpenScopeRef$Type;
declare class OpenAppRequest$Type extends MessageType<OpenAppRequest> {
    constructor();
    create(value?: PartialMessage<OpenAppRequest>): OpenAppRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OpenAppRequest): OpenAppRequest;
    internalBinaryWrite(message: OpenAppRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.OpenAppRequest
 */
export declare const OpenAppRequest: OpenAppRequest$Type;
declare class AppOpenProjection$Type extends MessageType<AppOpenProjection> {
    constructor();
    create(value?: PartialMessage<AppOpenProjection>): AppOpenProjection;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AppOpenProjection): AppOpenProjection;
    internalBinaryWrite(message: AppOpenProjection, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.AppOpenProjection
 */
export declare const AppOpenProjection: AppOpenProjection$Type;
declare class OpenAppResponse$Type extends MessageType<OpenAppResponse> {
    constructor();
    create(value?: PartialMessage<OpenAppResponse>): OpenAppResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OpenAppResponse): OpenAppResponse;
    internalBinaryWrite(message: OpenAppResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.OpenAppResponse
 */
export declare const OpenAppResponse: OpenAppResponse$Type;
/**
 * @generated ServiceType for protobuf service nimi.runtime.v1.RuntimeAppService
 */
export declare const RuntimeAppService: ServiceType;
export {};
//# sourceMappingURL=app.d.ts.map