import { type ThemeState } from '@atlaskit/tokens'; import { type ForgeSupportedLocaleCode } from '@forge/i18n'; import { type External, type Scopes } from '@forge/manifest'; export type InvokePayload = { [key in number | string]: any; }; export type InvokeResponseBody = Record | void; export type RateLimitProperties = { rateLimitRemaining?: number; rateLimitReset?: number; rateLimitLimit?: number; }; type InvokeMetadataDefinition = { rateLimitProperties: { request: boolean; response: RateLimitProperties; }; }; export type InvokeMetadata = { [K in keyof InvokeMetadataDefinition]?: InvokeMetadataDefinition[K]['request']; }; export type InvokeResponseMetadata = { [K in keyof InvokeMetadataDefinition]?: InvokeMetadataDefinition[K]['response']; }; export type InvokeResponseWithMetadata = { body: T; metadata?: InvokeResponseMetadata; }; export type InvokeResponse = T | InvokeResponseWithMetadata; export type RemoteInvokeResponse = { headers: Record; status: number; body?: Record; }; type FetchResponse = { body?: string; headers: { [key: string]: string; }; isAttachment?: boolean; } & Pick; export type ProductFetchResponse = FetchResponse; export type RemoteFetchResponse = FetchResponse; export type TeamworkGraphResult = { data?: Record | null; errors?: Array>; }; export declare enum ExtensionEnvironment { DEVELOPMENT = "DEVELOPMENT", STAGING = "STAGING", PRODUCTION = "PRODUCTION" } type UserAccessDetails = { enabled: boolean; hasAccess: boolean; }; export type EnvironmentType = keyof typeof ExtensionEnvironment; export interface FullContext { accountId?: string; cloudId?: string; workspaceId?: string; extension: ExtensionData; environmentId: string; environmentType: EnvironmentType; license?: LicenseDetails; localId: string; locale: ForgeSupportedLocaleCode; moduleKey: string; siteUrl: string; timezone: string; theme?: Partial | null; surfaceColor?: string | null; userAccess?: UserAccessDetails; permissions?: RuntimePermissions; } interface ExtensionData { [k: string]: any; } declare enum EcosystemLicenseMode { USER_ACCESS = "USER_ACCESS" } export interface LicenseDetails { active: boolean; billingPeriod: string; ccpEntitlementId: string; ccpEntitlementSlug: string; isEvaluation: boolean; subscriptionEndDate: string | null; supportEntitlementNumber: string | null; trialEndDate: string | null; type: string; modes: [EcosystemLicenseMode] | null; } export type Subscription = { unsubscribe: () => void; }; /** * Runtime representation of app permissions that extends the manifest schema. * * This type represents the scopes and external permissions that the app * has been granted, as configured in the manifest.yml file. */ export interface RuntimePermissions { scopes?: Scopes; external?: External; } export type ForgeRequestInit = Omit; export type FetchType = 'remote' | 'product'; export {}; //# sourceMappingURL=types.d.ts.map