import { AccountMeta, Context, PublicKey } from '@metaplex-foundation/umi'; import { LifecycleHookInitInfoArgs, LifecycleHookPlugin, LifecycleHookUpdateInfoArgs } from '.'; import { BaseExternalPluginAdapterInitInfoArgs, BaseExternalPluginAdapterKey, BaseExternalPluginAdapterUpdateInfoArgs, ExternalRegistryRecord } from '../generated'; import { AppDataInitInfoArgs, AppDataPlugin, AppDataUpdateInfoArgs } from './appData'; import { LifecycleChecksContainer, LifecycleEvent } from './lifecycleChecks'; import { OracleInitInfoArgs, OraclePlugin, OracleUpdateInfoArgs } from './oracle'; import { BasePlugin } from './types'; import { LinkedAppDataInitInfoArgs, LinkedAppDataPlugin, LinkedAppDataUpdateInfoArgs } from './linkedAppData'; import { DataSectionPlugin } from './dataSection'; import { LinkedLifecycleHookInitInfoArgs, LinkedLifecycleHookPlugin, LinkedLifecycleHookUpdateInfoArgs } from './linkedLifecycleHook'; import { AgentIdentityInitInfoArgs, AgentIdentityPlugin, AgentIdentityUpdateInfoArgs } from './agentIdentity'; export type ExternalPluginAdapterTypeString = BaseExternalPluginAdapterKey['__kind']; export type BaseExternalPluginAdapter = BasePlugin & ExternalPluginAdapterData & LifecycleChecksContainer; export type ExternalPluginAdapters = LifecycleHookPlugin | OraclePlugin | AppDataPlugin | LinkedLifecycleHookPlugin | LinkedAppDataPlugin | DataSectionPlugin | AgentIdentityPlugin; export type ExternalPluginAdaptersList = { lifecycleHooks?: LifecycleHookPlugin[]; oracles?: OraclePlugin[]; appDatas?: AppDataPlugin[]; linkedLifecycleHooks?: LinkedLifecycleHookPlugin[]; linkedAppDatas?: LinkedAppDataPlugin[]; dataSections?: DataSectionPlugin[]; agentIdentities?: AgentIdentityPlugin[]; }; export type ExternalPluginAdapterInitInfoArgs = ({ type: 'LifecycleHook'; } & LifecycleHookInitInfoArgs) | ({ type: 'Oracle'; } & OracleInitInfoArgs) | ({ type: 'AppData'; } & AppDataInitInfoArgs) | ({ type: 'LinkedLifecycleHook'; } & LinkedLifecycleHookInitInfoArgs) | ({ type: 'LinkedAppData'; } & LinkedAppDataInitInfoArgs) | ({ type: 'DataSection'; } & AppDataInitInfoArgs) | ({ type: 'AgentIdentity'; } & AgentIdentityInitInfoArgs); export type ExternalPluginAdapterUpdateInfoArgs = ({ type: 'LifecycleHook'; } & LifecycleHookUpdateInfoArgs) | ({ type: 'Oracle'; } & OracleUpdateInfoArgs) | ({ type: 'AppData'; } & AppDataUpdateInfoArgs) | ({ type: 'LinkedLifecycleHook'; } & LinkedLifecycleHookUpdateInfoArgs) | ({ type: 'LinkedAppData'; } & LinkedAppDataUpdateInfoArgs) | ({ type: 'AgentIdentity'; } & AgentIdentityUpdateInfoArgs); export declare const externalPluginAdapterManifests: { LifecycleHook: import("./externalPluginAdapterManifest").ExternalPluginAdapterManifest; Oracle: import("./externalPluginAdapterManifest").ExternalPluginAdapterManifest; AppData: import("./externalPluginAdapterManifest").ExternalPluginAdapterManifest; LinkedLifecycleHook: import("./externalPluginAdapterManifest").ExternalPluginAdapterManifest; LinkedAppData: import("./externalPluginAdapterManifest").ExternalPluginAdapterManifest; DataSection: import("./externalPluginAdapterManifest").ExternalPluginAdapterManifest; AgentIdentity: import("./externalPluginAdapterManifest").ExternalPluginAdapterManifest; }; export type ExternalPluginAdapterData = { dataLen?: bigint; dataOffset?: bigint; }; export declare function externalRegistryRecordsToExternalPluginAdapterList(records: ExternalRegistryRecord[], accountData: Uint8Array): ExternalPluginAdaptersList; export declare const isExternalPluginAdapterType: (plugin: { type: string; }) => boolean; export declare function createExternalPluginAdapterInitInfo({ type, ...args }: ExternalPluginAdapterInitInfoArgs): BaseExternalPluginAdapterInitInfoArgs; export declare function createExternalPluginAdapterUpdateInfo({ type, ...args }: ExternalPluginAdapterUpdateInfoArgs): BaseExternalPluginAdapterUpdateInfoArgs; export declare const findExtraAccounts: (context: Pick, lifecycle: LifecycleEvent, externalPluginAdapters: ExternalPluginAdaptersList, inputs: { asset: PublicKey; collection?: PublicKey; owner: PublicKey; recipient?: PublicKey; }) => AccountMeta[];