import type { AuditorService, AuthService, HttpAuthService, PluginMetadataService } from '@backstage/backend-plugin-api';
import type { JsonObject } from '@backstage/types';
import type { Format } from 'logform';
import * as winston from 'winston';
/** @public */
export declare const defaultFormatter: Format;
/**
 * Adds `isAuditEvent` field
 *
 * @public
 */
export declare const auditorFieldFormat: Format;
/**
 * Options for creating a {@link WinstonRootAuditorService}.
 * @public
 */
export type WinstonRootAuditorServiceOptions = {
    meta?: JsonObject;
    format?: Format;
    transports?: winston.transport[];
};
/**
 * An implementation of the {@link @backstage/backend-plugin-api#AuditorService} that logs events using a separate winston logger.
 *
 * @public
 *
 * @example
 * ```ts
 * export const auditorServiceFactory = createServiceFactory({
 *   service: coreServices.auditor,
 *   deps: {
 *     auth: coreServices.auth,
 *     httpAuth: coreServices.httpAuth,
 *     plugin: coreServices.pluginMetadata,
 *   },
 *   createRootContext() {
 *     return WinstonRootAuditorService.create();
 *   },
 *   factory({ plugin, auth, httpAuth }, root) {
 *     return root.forPlugin({ plugin, auth, httpAuth });
 *   },
 * });
 * ```
 */
export declare class WinstonRootAuditorService {
    private readonly winstonLogger;
    private constructor();
    /**
     * Creates a {@link WinstonRootAuditorService} instance.
     */
    static create(options?: WinstonRootAuditorServiceOptions): WinstonRootAuditorService;
    forPlugin(deps: {
        auth: AuthService;
        httpAuth: HttpAuthService;
        plugin: PluginMetadataService;
    }): AuditorService;
}
