/** * SDK Class Registry * * Provides a registry pattern for scope-specific SDK classes. * Each scope can register its own SDK class that extends ComplianceSDKImpl * and adds scope-specific resources. * * @example * ```typescript * // In sdk/mx/index.ts * import { registerSDKClass } from '../sdk-registry'; * import { MexicoComplianceSDKImpl } from './ComplianceSDK'; * * registerSDKClass('MX', MexicoComplianceSDKImpl); * * // Now `new ComplianceSDK({ scope: "MX" })` returns MexicoComplianceSDKImpl * ``` */ import { type Scope } from "@artu-ai/shared"; type SDKClassConstructor = new (options: any) => any; /** * Registers an SDK class for a specific scope. * * @param scopeKey - Scope identifier (e.g., "MX", "MX:AV:AVI", "US") * @param SDKClass - SDK class constructor */ export declare function registerSDKClass(scopeKey: string, SDKClass: SDKClassConstructor): void; /** * Gets the SDK class for a specific scope. * * Looks up with fallback: * 1. Exact scope match (e.g., "MX:AV:AVI") * 2. Jurisdiction parent (e.g., "MX" from "MX:AV:AVI") * 3. Returns undefined (use base ComplianceSDKImpl) * * @param scope - SDK scope * @returns SDK class constructor or undefined if no specific class registered */ export declare function getSDKClass(scope: Scope | undefined): SDKClassConstructor | undefined; /** * Checks if an SDK class is registered for a scope * * @param scopeKey - Scope identifier to check * @returns true if an SDK class is registered */ export declare function hasSDKClass(scopeKey: string): boolean; /** * Gets all registered SDK class scope keys (for debugging/testing) * * @returns Array of registered scope keys */ export declare function getRegisteredSDKClasses(): string[]; export {};