import { TraceContextService } from './trace-context.service';
import { StructuredLoggerService } from './structured-logger.service';
import { LogWriterService } from './log-writer.service';
export type WorkflowStatus = 'PENDING' | 'RUNNING' | 'COMPLETED' | 'FAILED' | 'CANCELLED' | 'TIMED_OUT';
export type ActivityStatus = 'STARTED' | 'COMPLETED' | 'FAILED' | 'RETRYING' | 'CANCELLED' | 'TIMED_OUT';
export interface WorkflowLogInput {
    workflowId: string;
    workflowType: string;
    workflowRunId?: string;
    previousState?: WorkflowStatus;
    currentState: WorkflowStatus;
    trigger?: string;
    businessKey?: string;
    initiatorId?: string;
    error?: {
        type: string;
        message: string;
    };
    metadata?: Record<string, any>;
}
export interface ActivityLogInput {
    workflowId: string;
    workflowType: string;
    workflowRunId?: string;
    activityId: string;
    activityType: string;
    status: ActivityStatus;
    attempt?: number;
    durationMs?: number;
    startToCloseTimeout?: number;
    scheduleToStartTimeout?: number;
    businessKey?: string;
    error?: {
        type: string;
        message: string;
    };
    metadata?: Record<string, any>;
}
export declare class TemporalLoggerService {
    private readonly traceContextService;
    private readonly structuredLogger;
    private readonly logWriter;
    constructor(traceContextService: TraceContextService, structuredLogger: StructuredLoggerService, logWriter: LogWriterService);
    logWorkflowStateChange(input: WorkflowLogInput): void;
    logActivityExecution(input: ActivityLogInput): void;
    logActivityStart(input: Omit<ActivityLogInput, 'status'>): void;
    logActivityComplete(input: Omit<ActivityLogInput, 'status'>): void;
    logActivityFailed(input: Omit<ActivityLogInput, 'status'> & {
        error: {
            type: string;
            message: string;
        };
    }): void;
    logActivityRetry(input: Omit<ActivityLogInput, 'status'> & {
        attempt: number;
    }): void;
    logWorkflowStart(input: Omit<WorkflowLogInput, 'currentState' | 'previousState'>): void;
    logWorkflowComplete(input: Omit<WorkflowLogInput, 'currentState'>): void;
    logWorkflowFailed(input: Omit<WorkflowLogInput, 'currentState'> & {
        error: {
            type: string;
            message: string;
        };
    }): void;
    private getLogLevel;
    private outputLog;
    private writeToDatabase;
}
