/** * StorageServer.ts * * A server-side class that "has a" local WalletStorage (like a StorageKnex instance), * and exposes it via a JSON-RPC POST endpoint using Express. */ import { MakeWalletLogger } from '@bsv/sdk'; import { Request } from 'express'; import { Wallet } from '../../Wallet'; import { StorageProvider } from '../StorageProvider'; import { EntityTimeStamp } from '../../sdk/types'; export interface WalletStorageServerOptions { port: number; wallet: Wallet; monetize: boolean; calculateRequestPrice?: (req: Request) => number | Promise; adminIdentityKeys?: string[]; makeLogger?: MakeWalletLogger; } export declare class StorageServer { private readonly app; private readonly port; private readonly storage; private readonly wallet; private readonly monetize; private readonly calculateRequestPrice?; private readonly adminIdentityKeys?; private readonly makeLogger?; constructor(storage: StorageProvider, options: WalletStorageServerOptions); private setupShortReqLogging; private setupRoutes; private validateParam0; server: any; start(): void; close(): Promise; /** @see {@link validateDate} */ validateDate(date: Date | string | number): Date; /** * Helper to force uniform behavior across database engines. * Use to process all individual records with time stamps retreived from database. * @see {@link validateEntity} */ validateEntity(entity: T, dateFields?: string[]): T; /** * Helper to force uniform behavior across database engines. * Use to process all arrays of records with time stamps retreived from database. * @returns input `entities` array with contained values validated. * @see {@link validateEntities} */ validateEntities(entities: T[], dateFields?: string[]): T[]; } //# sourceMappingURL=StorageServer.d.ts.map