import { OnModuleInit, OnModuleDestroy } from '@nestjs/common';
import { TemporalOptions, WorkflowStartOptions, ServiceHealth, WorkerStatus, ActivityMethodInfo, MetadataInfo, TemporalServiceInitResult, WorkflowExecutionResult, WorkflowSignalResult, WorkflowQueryResult, WorkflowTerminationResult, WorkflowCancellationResult, ActivityExecutionResult, OverallHealthStatus, ServiceStatistics, WorkerDefinition, MultipleWorkersInfo, CreateWorkerResult, Worker } from '../interfaces';
import { TemporalClientService } from './temporal-client.service';
import { TemporalWorkerManagerService } from './temporal-worker.service';
import { TemporalScheduleService } from './temporal-schedule.service';
import { TemporalDiscoveryService } from './temporal-discovery.service';
import { TemporalMetadataAccessor } from './temporal-metadata.service';
export declare class TemporalService implements OnModuleInit, OnModuleDestroy {
    private readonly options;
    private readonly clientService;
    private readonly workerService;
    private readonly scheduleService;
    private readonly discoveryService;
    private readonly metadataAccessor;
    private readonly logger;
    private isInitialized;
    private shutdownPromise;
    constructor(options: TemporalOptions, clientService: TemporalClientService, workerService: TemporalWorkerManagerService, scheduleService: TemporalScheduleService, discoveryService: TemporalDiscoveryService, metadataAccessor: TemporalMetadataAccessor);
    onModuleInit(): Promise<TemporalServiceInitResult>;
    onModuleDestroy(): Promise<void>;
    private waitForServicesInitialization;
    private performShutdown;
    startWorkflow<T = unknown>(workflowType: string, args?: unknown[], options?: WorkflowStartOptions): Promise<WorkflowExecutionResult<T>>;
    signalWorkflow(workflowId: string, signalName: string, args?: unknown[]): Promise<WorkflowSignalResult>;
    queryWorkflow<T = unknown>(workflowId: string, queryName: string, args?: unknown[]): Promise<WorkflowQueryResult<T>>;
    getWorkflowHandle<T = unknown>(workflowId: string, runId?: string): Promise<T>;
    terminateWorkflow(workflowId: string, reason?: string): Promise<WorkflowTerminationResult>;
    cancelWorkflow(workflowId: string): Promise<WorkflowCancellationResult>;
    startWorker(): Promise<void>;
    stopWorker(): Promise<void>;
    isWorkerRunning(): boolean;
    hasWorker(): boolean;
    getWorkerStatus(): WorkerStatus | null;
    getWorkerManager(): TemporalWorkerManagerService;
    getWorker(taskQueue: string): Worker | null;
    getAllWorkers(): MultipleWorkersInfo | null;
    getWorkerStatusByTaskQueue(taskQueue: string): WorkerStatus | null;
    startWorkerByTaskQueue(taskQueue: string): Promise<void>;
    stopWorkerByTaskQueue(taskQueue: string): Promise<void>;
    registerWorker(workerDef: WorkerDefinition): Promise<CreateWorkerResult>;
    executeActivity<T = unknown>(name: string, ...args: unknown[]): Promise<ActivityExecutionResult<T>>;
    getActivity(name: string): Function | undefined;
    getAllActivities(): Record<string, Function>;
    hasActivity(name: string): boolean;
    getActivityNames(): string[];
    isActivity(target: Function): boolean;
    isActivityMethod(target: object, methodName: string): boolean;
    getActivityMetadata(target: Function): MetadataInfo | null;
    extractActivityMethods(target: Function): ActivityMethodInfo[];
    getOverallHealth(): Promise<OverallHealthStatus>;
    getWorkerHealth(): Promise<{
        status: 'healthy' | 'unhealthy' | 'degraded' | 'not_available';
        details?: WorkerStatus;
    }>;
    getHealth(): {
        status: 'healthy' | 'unhealthy' | 'degraded';
        services: {
            client: ServiceHealth;
            worker: ServiceHealth;
            schedule: ServiceHealth;
            activity: ServiceHealth;
            discovery: ServiceHealth;
        };
        isInitialized: boolean;
        namespace: string;
        summary: {
            totalActivities: number;
            totalSchedules: number;
            workerRunning: boolean;
            clientConnected: boolean;
        };
    };
    getStats(): ServiceStatistics;
    private logServiceStatus;
    private ensureInitialized;
    private enhanceWorkflowOptions;
    private getClientHealth;
    private getWorkerHealthStatus;
    private getScheduleHealth;
    private getActivityHealth;
    private getDiscoveryHealth;
    private getActivityCount;
    private getScheduleCount;
    get client(): TemporalClientService;
    get worker(): TemporalWorkerManagerService;
    get schedule(): TemporalScheduleService;
    get activity(): TemporalDiscoveryService;
    get discovery(): TemporalDiscoveryService;
    get metadata(): TemporalMetadataAccessor;
    private extractErrorMessage;
}
