import { LoggerConfig } from '../types'; type EchoSlack = { label: string; data: object; options?: EchoSlackOptions; module?: string; }; type OptionInclude = 'version'; type SendIn = 'debug' | 'release'; type EchoSlackOptions = { sendIn?: SendIn[]; include?: OptionInclude[]; }; /** * Sends structured log messages to a Slack channel via the Slack Web API. * * The service is inert until {@link setApi} is called with an HTTP client. Messages are * silently suppressed when the API client is absent, `echoConfig.enabled` is `false`, or * the current environment does not match the caller-supplied `sendIn` filter. */ export declare class SlackService { private config; private echoConfig; private isDev; private appName; private api; constructor(config: LoggerConfig); /** * Registers the HTTP client used to POST messages to Slack. Must be called before `echo` * can send anything; calling `echo` without a registered API is a no-op. */ setApi(fetcher: any): void; /** * Posts a labelled object to Slack. The message is formatted with `util.inspect` so nested * structures are human-readable in the channel. * * Delivery is conditional on three independent guards: * - `options.sendIn` — restricts to `'debug'` (IsDev) or `'release'` (production) builds; * omitting `sendIn` sends in both environments. * - `echoConfig.enabled` — master switch in the config; defaults to `true` when omitted. * - A registered API client (see {@link setApi}). * * Failures are caught and logged to `console.error` rather than propagated. */ echo(label: EchoSlack['label'], slackData: EchoSlack['data'], moduleName?: EchoSlack['module'], messageOptions?: EchoSlack['options']): Promise; private serializers; private parseOptions; private parseData; } export {}; //# sourceMappingURL=Slack.d.ts.map