import type { ConfigItem } from '../common/types'; import { ExecutionContext, type ExecutionContextOptions } from './context/execution-context'; import type { ExtensionMethod } from './method'; import type { SharedExtensionDefinition, SharedExtensionServiceInfo } from './model/model-types'; import { OAuth2 } from './oauth/oauth2'; import type { OAuth2Props } from './oauth/types'; import type { DictionaryRef } from './params'; import { ConfigParams } from './params'; import { PollingTriggers } from './polling-triggers/polling-triggers'; import type { PollingTriggerProps } from './polling-triggers/types'; import { RealtimeSetup } from './realtime-triggers/realtime-setup'; import { RealtimeTriggerMethod } from './realtime-triggers/trigger-method'; import type { RealtimeSetupProps, RealtimeTriggerProps } from './realtime-triggers/types'; import { type SystemMethodSpec } from './system-method'; import type { ActionProps, DictionaryProps, ExtensionProps } from './types'; export declare class Extension { #private; constructor(props: ExtensionProps); get id(): string; get props(): ExtensionProps; get config(): ConfigParams; get oauth(): OAuth2 | undefined; get realtime(): RealtimeSetup | undefined; realtimeTriggers(): RealtimeTriggerMethod[]; findRealtimeTrigger(id: string): RealtimeTriggerMethod | undefined; get pollingTriggers(): PollingTriggers; get appearanceColors(): [string, string]; registerDictionary(props: DictionaryProps): DictionaryRef; registerAction(props: ActionProps): void; registerPollingTrigger(props: PollingTriggerProps): void; registerRealtimeTrigger(props: RealtimeTriggerProps): void; setupRealtime(props: RealtimeSetupProps): void; setupOAuth2(props: OAuth2Props): void; registerSystemMethods(specs: SystemMethodSpec[]): void; methods(): ExtensionMethod[]; findMethod(name: string): ExtensionMethod | undefined; getMethod(name: string): ExtensionMethod; createContext(options?: ExecutionContextOptions): ExecutionContext; run(methodName: string, methodData: Record, ctx: ExecutionContext): Promise; toConfigItems(): ConfigItem[]; toServiceInfo(): SharedExtensionServiceInfo; /** * The published model — the v2 analogue of jsdoc-parser's `parseJsDocToServiceJson`, and the same * `{ serviceInfo, methodsMap }` shape the console consumes for a v1 service. * * Every method describes itself, so this is one pass with no per-kind branches: what a service publishes * is exactly what it registered. */ toDefinition(): SharedExtensionDefinition; declaredOAuthScopes(): string[]; }