import type { ExecutionContext } from './context/execution-context'; import { MethodInput } from './context/method-input'; import type { Extension } from './extension'; import type { SharedExtensionMethod } from './model/model-types'; export declare abstract class ExtensionMethod { protected readonly extension: Extension; constructor(extension: Extension); abstract get name(): string; abstract get registerAs(): string; abstract toModel(): SharedExtensionMethod; get oauth2Scopes(): string[]; /** * Whether this method appears in the published `methodsMap`. Almost always yes — but the realtime refresh * seam is callable whether or not the author declared a `refresh` handler (the runtime answers `{}` when * they did not), while only being ADVERTISED when they did. Callable and advertised are therefore two * different questions, and this is the second one. */ get published(): boolean; validate(methodData: Record): unknown; abstract execute(params: unknown, ctx: ExecutionContext): unknown; protected input(methodData: Record): MethodInput; }