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 { ExternalPrincipalType } from "./common.js";
import { Timestamp } from "../../google/protobuf/timestamp.js";
import { ReasonCode } from "./common.js";
/**
 * @generated from protobuf message nimi.runtime.v1.AppModeManifest
 */
export interface AppModeManifest {
    /**
     * @generated from protobuf field: nimi.runtime.v1.AppMode app_mode = 1
     */
    appMode: AppMode;
    /**
     * @generated from protobuf field: bool runtime_required = 2
     */
    runtimeRequired: boolean;
    /**
     * @generated from protobuf field: bool realm_required = 3
     */
    realmRequired: boolean;
    /**
     * @generated from protobuf field: nimi.runtime.v1.WorldRelation world_relation = 4
     */
    worldRelation: WorldRelation;
}
/**
 * @generated from protobuf message nimi.runtime.v1.RegisterAppRequest
 */
export interface RegisterAppRequest {
    /**
     * @generated from protobuf field: string app_id = 1
     */
    appId: string;
    /**
     * @generated from protobuf field: string app_instance_id = 2
     */
    appInstanceId: string;
    /**
     * @generated from protobuf field: string device_id = 3
     */
    deviceId: string;
    /**
     * @generated from protobuf field: string app_version = 4
     */
    appVersion: string;
    /**
     * @generated from protobuf field: repeated string capabilities = 5
     */
    capabilities: string[];
    /**
     * @generated from protobuf field: nimi.runtime.v1.AppModeManifest mode_manifest = 6
     */
    modeManifest?: AppModeManifest;
}
/**
 * @generated from protobuf message nimi.runtime.v1.RegisterAppResponse
 */
export interface RegisterAppResponse {
    /**
     * @generated from protobuf field: string app_instance_id = 1
     */
    appInstanceId: 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.OpenSessionRequest
 */
export interface OpenSessionRequest {
    /**
     * @generated from protobuf field: string app_id = 1
     */
    appId: string;
    /**
     * @generated from protobuf field: string app_instance_id = 2
     */
    appInstanceId: string;
    /**
     * @generated from protobuf field: string device_id = 3
     */
    deviceId: string;
    /**
     * @generated from protobuf field: string subject_user_id = 4
     */
    subjectUserId: string;
    /**
     * @generated from protobuf field: int32 ttl_seconds = 5
     */
    ttlSeconds: number;
}
/**
 * @generated from protobuf message nimi.runtime.v1.OpenSessionResponse
 */
export interface OpenSessionResponse {
    /**
     * @generated from protobuf field: string session_id = 1
     */
    sessionId: string;
    /**
     * @generated from protobuf field: google.protobuf.Timestamp issued_at = 2
     */
    issuedAt?: Timestamp;
    /**
     * @generated from protobuf field: google.protobuf.Timestamp expires_at = 3
     */
    expiresAt?: Timestamp;
    /**
     * @generated from protobuf field: string session_token = 4
     */
    sessionToken: string;
    /**
     * @generated from protobuf field: nimi.runtime.v1.ReasonCode reason_code = 5
     */
    reasonCode: ReasonCode;
}
/**
 * @generated from protobuf message nimi.runtime.v1.RefreshSessionRequest
 */
export interface RefreshSessionRequest {
    /**
     * @generated from protobuf field: string session_id = 1
     */
    sessionId: string;
    /**
     * @generated from protobuf field: int32 ttl_seconds = 2
     */
    ttlSeconds: number;
}
/**
 * @generated from protobuf message nimi.runtime.v1.RefreshSessionResponse
 */
export interface RefreshSessionResponse {
    /**
     * @generated from protobuf field: string session_id = 1
     */
    sessionId: string;
    /**
     * @generated from protobuf field: google.protobuf.Timestamp expires_at = 2
     */
    expiresAt?: Timestamp;
    /**
     * @generated from protobuf field: string session_token = 3
     */
    sessionToken: string;
    /**
     * @generated from protobuf field: nimi.runtime.v1.ReasonCode reason_code = 4
     */
    reasonCode: ReasonCode;
}
/**
 * @generated from protobuf message nimi.runtime.v1.RevokeSessionRequest
 */
export interface RevokeSessionRequest {
    /**
     * @generated from protobuf field: string session_id = 1
     */
    sessionId: string;
}
/**
 * @generated from protobuf message nimi.runtime.v1.RegisterExternalPrincipalRequest
 */
export interface RegisterExternalPrincipalRequest {
    /**
     * @generated from protobuf field: string app_id = 1
     */
    appId: string;
    /**
     * @generated from protobuf field: string external_principal_id = 2
     */
    externalPrincipalId: string;
    /**
     * @generated from protobuf field: nimi.runtime.v1.ExternalPrincipalType external_principal_type = 3
     */
    externalPrincipalType: ExternalPrincipalType;
    /**
     * @generated from protobuf field: string issuer = 4
     */
    issuer: string;
    /**
     * @generated from protobuf field: string client_id = 5
     */
    clientId: string;
    /**
     * @generated from protobuf field: string signature_key_id = 6
     */
    signatureKeyId: string;
    /**
     * @generated from protobuf field: nimi.runtime.v1.ExternalProofType proof_type = 7
     */
    proofType: ExternalProofType;
}
/**
 * @generated from protobuf message nimi.runtime.v1.RegisterExternalPrincipalResponse
 */
export interface RegisterExternalPrincipalResponse {
    /**
     * @generated from protobuf field: bool accepted = 1
     */
    accepted: boolean;
    /**
     * @generated from protobuf field: nimi.runtime.v1.ReasonCode reason_code = 2
     */
    reasonCode: ReasonCode;
}
/**
 * @generated from protobuf message nimi.runtime.v1.OpenExternalPrincipalSessionRequest
 */
export interface OpenExternalPrincipalSessionRequest {
    /**
     * @generated from protobuf field: string app_id = 1
     */
    appId: string;
    /**
     * @generated from protobuf field: string external_principal_id = 2
     */
    externalPrincipalId: string;
    /**
     * @generated from protobuf field: string proof = 3
     */
    proof: string;
    /**
     * @generated from protobuf field: int32 ttl_seconds = 4
     */
    ttlSeconds: number;
}
/**
 * @generated from protobuf message nimi.runtime.v1.OpenExternalPrincipalSessionResponse
 */
export interface OpenExternalPrincipalSessionResponse {
    /**
     * @generated from protobuf field: string external_session_id = 1
     */
    externalSessionId: string;
    /**
     * @generated from protobuf field: google.protobuf.Timestamp expires_at = 2
     */
    expiresAt?: Timestamp;
    /**
     * @generated from protobuf field: string session_token = 3
     */
    sessionToken: string;
    /**
     * @generated from protobuf field: nimi.runtime.v1.ReasonCode reason_code = 4
     */
    reasonCode: ReasonCode;
}
/**
 * @generated from protobuf message nimi.runtime.v1.RevokeExternalPrincipalSessionRequest
 */
export interface RevokeExternalPrincipalSessionRequest {
    /**
     * @generated from protobuf field: string external_session_id = 1
     */
    externalSessionId: string;
}
/**
 * @generated from protobuf enum nimi.runtime.v1.ExternalProofType
 */
export declare enum ExternalProofType {
    /**
     * @generated from protobuf enum value: EXTERNAL_PROOF_TYPE_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * @generated from protobuf enum value: EXTERNAL_PROOF_TYPE_JWT = 1;
     */
    JWT = 1
}
/**
 * @generated from protobuf enum nimi.runtime.v1.AppMode
 */
export declare enum AppMode {
    /**
     * @generated from protobuf enum value: APP_MODE_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * @generated from protobuf enum value: APP_MODE_LITE = 1;
     */
    LITE = 1,
    /**
     * @generated from protobuf enum value: APP_MODE_CORE_ONLY = 2;
     */
    CORE_ONLY = 2,
    /**
     * @generated from protobuf enum value: APP_MODE_FULL = 3;
     */
    FULL = 3
}
/**
 * @generated from protobuf enum nimi.runtime.v1.WorldRelation
 */
export declare enum WorldRelation {
    /**
     * @generated from protobuf enum value: WORLD_RELATION_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * @generated from protobuf enum value: WORLD_RELATION_NONE = 1;
     */
    NONE = 1,
    /**
     * @generated from protobuf enum value: WORLD_RELATION_RENDER = 2;
     */
    RENDER = 2,
    /**
     * @generated from protobuf enum value: WORLD_RELATION_EXTENSION = 3;
     */
    EXTENSION = 3
}
declare class AppModeManifest$Type extends MessageType<AppModeManifest> {
    constructor();
    create(value?: PartialMessage<AppModeManifest>): AppModeManifest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AppModeManifest): AppModeManifest;
    internalBinaryWrite(message: AppModeManifest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.AppModeManifest
 */
export declare const AppModeManifest: AppModeManifest$Type;
declare class RegisterAppRequest$Type extends MessageType<RegisterAppRequest> {
    constructor();
    create(value?: PartialMessage<RegisterAppRequest>): RegisterAppRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RegisterAppRequest): RegisterAppRequest;
    internalBinaryWrite(message: RegisterAppRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.RegisterAppRequest
 */
export declare const RegisterAppRequest: RegisterAppRequest$Type;
declare class RegisterAppResponse$Type extends MessageType<RegisterAppResponse> {
    constructor();
    create(value?: PartialMessage<RegisterAppResponse>): RegisterAppResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RegisterAppResponse): RegisterAppResponse;
    internalBinaryWrite(message: RegisterAppResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.RegisterAppResponse
 */
export declare const RegisterAppResponse: RegisterAppResponse$Type;
declare class OpenSessionRequest$Type extends MessageType<OpenSessionRequest> {
    constructor();
    create(value?: PartialMessage<OpenSessionRequest>): OpenSessionRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OpenSessionRequest): OpenSessionRequest;
    internalBinaryWrite(message: OpenSessionRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.OpenSessionRequest
 */
export declare const OpenSessionRequest: OpenSessionRequest$Type;
declare class OpenSessionResponse$Type extends MessageType<OpenSessionResponse> {
    constructor();
    create(value?: PartialMessage<OpenSessionResponse>): OpenSessionResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OpenSessionResponse): OpenSessionResponse;
    internalBinaryWrite(message: OpenSessionResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.OpenSessionResponse
 */
export declare const OpenSessionResponse: OpenSessionResponse$Type;
declare class RefreshSessionRequest$Type extends MessageType<RefreshSessionRequest> {
    constructor();
    create(value?: PartialMessage<RefreshSessionRequest>): RefreshSessionRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RefreshSessionRequest): RefreshSessionRequest;
    internalBinaryWrite(message: RefreshSessionRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.RefreshSessionRequest
 */
export declare const RefreshSessionRequest: RefreshSessionRequest$Type;
declare class RefreshSessionResponse$Type extends MessageType<RefreshSessionResponse> {
    constructor();
    create(value?: PartialMessage<RefreshSessionResponse>): RefreshSessionResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RefreshSessionResponse): RefreshSessionResponse;
    internalBinaryWrite(message: RefreshSessionResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.RefreshSessionResponse
 */
export declare const RefreshSessionResponse: RefreshSessionResponse$Type;
declare class RevokeSessionRequest$Type extends MessageType<RevokeSessionRequest> {
    constructor();
    create(value?: PartialMessage<RevokeSessionRequest>): RevokeSessionRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RevokeSessionRequest): RevokeSessionRequest;
    internalBinaryWrite(message: RevokeSessionRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.RevokeSessionRequest
 */
export declare const RevokeSessionRequest: RevokeSessionRequest$Type;
declare class RegisterExternalPrincipalRequest$Type extends MessageType<RegisterExternalPrincipalRequest> {
    constructor();
    create(value?: PartialMessage<RegisterExternalPrincipalRequest>): RegisterExternalPrincipalRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RegisterExternalPrincipalRequest): RegisterExternalPrincipalRequest;
    internalBinaryWrite(message: RegisterExternalPrincipalRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.RegisterExternalPrincipalRequest
 */
export declare const RegisterExternalPrincipalRequest: RegisterExternalPrincipalRequest$Type;
declare class RegisterExternalPrincipalResponse$Type extends MessageType<RegisterExternalPrincipalResponse> {
    constructor();
    create(value?: PartialMessage<RegisterExternalPrincipalResponse>): RegisterExternalPrincipalResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RegisterExternalPrincipalResponse): RegisterExternalPrincipalResponse;
    internalBinaryWrite(message: RegisterExternalPrincipalResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.RegisterExternalPrincipalResponse
 */
export declare const RegisterExternalPrincipalResponse: RegisterExternalPrincipalResponse$Type;
declare class OpenExternalPrincipalSessionRequest$Type extends MessageType<OpenExternalPrincipalSessionRequest> {
    constructor();
    create(value?: PartialMessage<OpenExternalPrincipalSessionRequest>): OpenExternalPrincipalSessionRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OpenExternalPrincipalSessionRequest): OpenExternalPrincipalSessionRequest;
    internalBinaryWrite(message: OpenExternalPrincipalSessionRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.OpenExternalPrincipalSessionRequest
 */
export declare const OpenExternalPrincipalSessionRequest: OpenExternalPrincipalSessionRequest$Type;
declare class OpenExternalPrincipalSessionResponse$Type extends MessageType<OpenExternalPrincipalSessionResponse> {
    constructor();
    create(value?: PartialMessage<OpenExternalPrincipalSessionResponse>): OpenExternalPrincipalSessionResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OpenExternalPrincipalSessionResponse): OpenExternalPrincipalSessionResponse;
    internalBinaryWrite(message: OpenExternalPrincipalSessionResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.OpenExternalPrincipalSessionResponse
 */
export declare const OpenExternalPrincipalSessionResponse: OpenExternalPrincipalSessionResponse$Type;
declare class RevokeExternalPrincipalSessionRequest$Type extends MessageType<RevokeExternalPrincipalSessionRequest> {
    constructor();
    create(value?: PartialMessage<RevokeExternalPrincipalSessionRequest>): RevokeExternalPrincipalSessionRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RevokeExternalPrincipalSessionRequest): RevokeExternalPrincipalSessionRequest;
    internalBinaryWrite(message: RevokeExternalPrincipalSessionRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message nimi.runtime.v1.RevokeExternalPrincipalSessionRequest
 */
export declare const RevokeExternalPrincipalSessionRequest: RevokeExternalPrincipalSessionRequest$Type;
/**
 * @generated ServiceType for protobuf service nimi.runtime.v1.RuntimeAuthService
 */
export declare const RuntimeAuthService: ServiceType;
export {};
//# sourceMappingURL=auth.d.ts.map