import { LogQueryParams } from "../types"; import { ILoggerInit } from "../types/index.types"; import { ILogData } from "./logs.types"; export interface ILogsService { add(item: ILogData): void; fetchLogs(): Array; publish(): Promise; } export default class LogsService { private static readonly DEFAULT_BATCH_BYTES; private static readonly DEFAULT_ENTRY_DATA_BYTES; private static readonly DEFAULT_MAX_RETRIES; private eventLogs; private user_id; private workspace_id; /** Workspace private key for encrypting log data before send. When set, all log `data` fields are encrypted. */ private workspace_private_key; private product_id; private token; private app_id; private public_key; private logsApi; private environment; private ip_address; private language; constructor({ workspace_id, public_key, user_id, token, product_id, env_type, app_id, workspace_private_key, ip_address, language }: ILoggerInit); add(item: ILogData): void; fetchLogs(): ILogData[]; private configuredByteLimit; private byteLength; private truncateUtf8; private delay; private deliverBatch; /** * Flush telemetry without making application availability depend on the * Logs API. Failed and unsent entries remain queued for a later flush. */ publish(): Promise; fetch(params: LogQueryParams): Promise; private getUserAccess; }