import { AppAri, EnvironmentAri, InstallationAri } from './ari'; import { Permissions as ManifestPermissions, External as ManifestExternal, Scopes as ManifestScopes } from '@forge/manifest'; interface Timer { stop(tags?: Record): void; } interface Counter { incr(): void; incrBy(value: number): void; decr(): void; decrBy(value: number): void; } interface Timing { measure(): Timer; } interface Gauge { set(value: number): void; } export interface Metrics { timing(name: string, tags?: Record): Timing; counter(name: string, tags?: Record): Counter; gauge(name: string): Gauge; } export declare type ProxyInfo = { token: string; url: string; host?: string; }; export declare type ExternalAuthMetaDataAccount = { id: string; externalAccountId: string; displayName: string; scopes: string[]; avatarUrl?: string; }; export declare type ExternalAuthMetaData = { service: string; remotes: { baseUrl: string; key: string; }[]; accounts: ExternalAuthMetaDataAccount[]; }; export declare type CapabilitySet = 'capabilityStandard' | 'capabilityAdvanced'; export declare type License = { active?: boolean; isActive?: boolean; billingPeriod?: string; capabilitySet?: CapabilitySet; ccpEntitlementId?: string; ccpEntitlementSlug?: string; isEvaluation?: boolean; subscriptionEndDate?: string; supportEntitlementNumber?: string; trialEndDate?: string; type?: string; }; export interface ContextAri { cloudId?: string; workspaceId?: string; toString: () => string; } export interface Installation { ari: InstallationAri; contexts: ContextAri[]; } export interface Realtime { contextToken?: string; } export declare type External = ManifestExternal; export declare abstract class Permissions implements ManifestPermissions { abstract scopes?: ManifestScopes; abstract external?: ManifestExternal; format(): string; } export declare class RuntimePermissions extends Permissions { scopes: ManifestScopes; external: ManifestExternal; constructor(scopes: ManifestScopes, external: ManifestExternal); } export declare class PermissionRequirements extends Permissions { scopes?: ManifestScopes | undefined; external?: ManifestExternal | undefined; constructor(scopes?: ManifestScopes | undefined, external?: ManifestExternal | undefined); } export declare class MissingPermissions extends Permissions { scopes?: ManifestScopes | undefined; external?: ManifestExternal | undefined; constructor(scopes?: ManifestScopes | undefined, external?: ManifestExternal | undefined); } export declare type ForgeRuntime = { proxy: ProxyInfo; contextAri: string; container: { region?: string; runtime?: string; handler?: string; appCodeDir?: string; }; appContext: { appId: string; appVersion: string; environmentId: string; environmentType: string; invocationId: string; installationId: string; functionKey: string; moduleType: string; moduleKey: string; license?: License; installation?: Installation; permissions?: Permissions; }; aaid?: string; lambdaContext: { awsRequestId: string; getRemainingTimeInMillis(): number; }; tracing: { traceId: string; spanId: string; }; realtime: Realtime; metrics: Metrics; rms?: { url: string; host: string; }; kvs?: { url: string; host: string; }; externalAuth?: ExternalAuthMetaData[]; featureFlags: (flag: string) => boolean; }; export declare type AppContext = { appAri: AppAri; appVersion: string; environmentAri: EnvironmentAri; environmentType: string; invocationId: string; invocationRemainingTimeInMillis(): number; installationAri: InstallationAri; moduleKey: string; license?: License; installation?: Installation; permissions?: Permissions; }; export declare function __getRuntime(): ForgeRuntime; export declare function getAppContext(): AppContext; export declare function wrapInMetrics(name: string, fn: (...args: Args) => Promise): (...args: Args) => Promise; export declare function bindInvocationContext unknown>(fn: Func): Func; export {}; //# sourceMappingURL=runtime.d.ts.map