import { OpenTDF, type OpenTDFOptions, type CryptoService } from '@opentdf/sdk'; import { type PlatformServices } from '@opentdf/sdk/platform'; import { type DSPClientServicesV1, type DSPClientServicesV2 } from './client'; import type { Interceptor } from '@connectrpc/connect'; export type DSPServicesV1 = DSPClientServicesV1 & PlatformServices; export type DSPServicesV2 = DSPClientServicesV2; export interface DSPOptions extends OpenTDFOptions { platformUrl: string; interceptors?: Interceptor[]; /** * Enable FIPS 140-2 compliant cryptography for TDF3/ZTDF operations. * When true, uses @virtru-private/fips-mode for encryption/decryption. * Requires @virtru-private/fips-crypto-js WASM module to be loaded. * * Note: NanoTDF operations are NOT affected by this flag and will * continue to use native crypto.subtle (not FIPS-compliant). */ useFips?: boolean; /** * Optional: Provide a custom CryptoService implementation for TDF3/ZTDF. * If provided, this takes precedence over useFips flag. * NanoTDF operations are not affected. */ cryptoService?: CryptoService; } export declare class DSP extends OpenTDF { readonly fipsEnabled: boolean; readonly services: { v1: DSPServicesV1; v2: DSPServicesV2; }; constructor(options: DSPOptions); } export declare function createDSP(options: DSPOptions): DSP;