import { SchemaTemplateItem } from '@sprucelabs/schema';
import { EventContractTemplateItem, EventListenerOptions, ListenerTemplateItem } from '@sprucelabs/spruce-templates';
import AbstractWriter from '../../../writers/AbstractWriter';
export default class EventWriter extends AbstractWriter {
    writeContracts(destinationDir: string, options: {
        eventContractTemplateItems: EventContractTemplateItem[];
        schemaTemplateItems: SchemaTemplateItem[];
        shouldImportCoreEvents?: boolean;
        skillEventContractTypesFile: string;
        eventBuilderFile: string;
    }): Promise<import("@sprucelabs/spruce-core-schemas").SpruceSchemas.SpruceCli.v2020_07_22.GeneratedFile[]>;
    private writeContract;
    hasCombinedContractBeenWritten(cwd: string): boolean;
    private writeCombinedEvents;
    writeListener(destinationDir: string, options: Omit<EventListenerOptions, 'schemaTypesFile'> & {
        schemaTypesLookupDir: string;
    }): Promise<import("../../../writers/AbstractWriter").WriteResults>;
    writeListenerMap(destinationDir: string, options: {
        listeners: ListenerTemplateItem[];
    }): Promise<import("../../../writers/AbstractWriter").WriteResults>;
    writeEvent(destinationDir: string, options: {
        nameCamel: string;
        nameKebab: string;
        version: string;
        nameReadable: string;
        isGlobal?: boolean;
    }): Promise<import("@sprucelabs/spruce-core-schemas").SpruceSchemas.SpruceCli.v2020_07_22.GeneratedFile[]>;
    private resolveSchemaTypesFile;
}
export declare function generateEventContractFileName(options: {
    nameCamel: string;
    version: string;
}): string;
