import { AsyncEndEvent, AsyncInstantEvent, AsyncStartEvent, CompleteEvent, CounterEvent, DurationBeginEvent, DurationEndEvent, Event, InstantEvent, MetadataEvent } from '../schema'; export type OmitOptionally = Omit & Partial>; export type Completable = OmitOptionally; export type Simplified = OmitOptionally; export type AutocompletedEventFields = Pick; export declare abstract class AbstractEventBuilder { begin(event: Simplified): void; beginAsync(event: Simplified): void; complete(event: Simplified): void; counter(event: Simplified): void; end(event?: Simplified): void; endAsync(event: Simplified): void; instant(event: Simplified): void; instantAsync(event: Simplified): void; metadata(event: Simplified): void; process_labels(labels: string[], pid?: number): void; process_name(name: string, pid?: number): void; process_sort_index(index: number, pid?: number): void; thread_name(name: string, tid?: number, pid?: number): void; thread_sort_index(index: number, tid?: number, pid?: number): void; event(event: Completable): void; protected defaults>(event: T): T & AutocompletedEventFields; protected abstract send(event: T): void; }