import { PublicKey } from "@solana/web3.js"; import { BN } from "@coral-xyz/anchor"; import { IntegrationAcl, DelegateAcl } from "../models"; /** * Get protocol names from a bitmask for a given integration program * Uses the SDK's parseProtocolsBitmask function */ export declare function getProtocolNamesFromBitmask(integrationProgram: PublicKey, bitmask: number, staging: boolean): string[]; /** * Get permission names from a permissions bitmask for a protocol * Uses the SDK's parseProtocolPermissionsBitmask function */ export declare function getPermissionNamesFromBitmask(integrationProgram: PublicKey, protocolBitflag: number, permissionsBitmask: BN, staging: boolean): string[]; /** * Compare current and staged PublicKey arrays and return added/removed keys */ export declare function comparePublicKeyArrays(current: PublicKey[] | null, staged: PublicKey[]): { added: PublicKey[]; removed: PublicKey[]; }; /** * Compare current and staged integrationAcls and return the differences */ export declare function compareIntegrationAcls(current: IntegrationAcl[] | null, staged: IntegrationAcl[] | null, staging: boolean): { added: IntegrationAcl[]; removed: IntegrationAcl[]; modified: Array<{ integrationProgram: PublicKey; currentBitmask: number; stagedBitmask: number; enabledProtocols: string[]; disabledProtocols: string[]; }>; }; /** * Compare current and staged delegateAcls and return the differences */ export declare function compareDelegateAcls(current: DelegateAcl[] | null, staged: DelegateAcl[] | null, staging: boolean): { added: DelegateAcl[]; removed: DelegateAcl[]; modified: Array<{ pubkey: PublicKey; currentExpiresAt: BN; stagedExpiresAt: BN; permissionChanges: Array<{ integrationProgram: PublicKey; protocolName: string; addedPermissions: string[]; removedPermissions: string[]; }>; }>; };