import { NeoFSClient } from './client'; import { Signer } from '@axlabs/neofs-sdk-ts-core/crypto'; import { ObjectID, ContainerID } from '../types'; export interface SessionToken { id: Uint8Array; ownerId: Uint8Array; lifetime: { exp: number; nbf: number; iat: number; }; sessionKey: Uint8Array; context?: { object?: { verb: number; address: { containerId: ContainerID; objectId: ObjectID; }; }; container?: { verb: number; wildcard: boolean; containerId?: ContainerID; }; }; signature?: { key: Uint8Array; sign: Uint8Array; scheme: number; }; } export interface SessionCreateParams { expiration: number; } export interface SessionCreateResponse { id: Uint8Array; sessionKey: Uint8Array; } export declare class SessionClient { private client; private signer; private endpoint; constructor(neofsClient: NeoFSClient, config: { signer: Signer; endpoint: string; }); /** * Create a new session token. */ create(params: SessionCreateParams): Promise; /** * Prepare an object session token for a specific operation. */ prepareObjectSessionToken(sessionToken: SessionToken, address: { containerId: ContainerID; objectId: ObjectID; }, verb: number): SessionToken; /** * Sign a session token. */ private signSessionToken; /** * Sign a request. */ private signRequest; /** * Generate NeoFS account ID from public key. */ private generateNeoFSAccountId; }