export interface EventTopicDefinition { tag: string; name: string; description?: string; sample?: Record; idempotent?: boolean; queueUrls?: Array<{ env_slug: string; url: string; }>; } export interface ValidatedEventTopic { file: string; definition: EventTopicDefinition; } export interface EventTopicProjectValidation { valid: true; directory: string; topics: ValidatedEventTopic[]; publisherTopics: string[]; } export declare function expectedTopicFilename(tag: string): string; export declare function validateEventTopicDefinition(value: unknown, file?: string): EventTopicDefinition; export declare function canonicalEventsDirectory(projectRoot?: string): string; export declare function assertCanonicalTopicFile(file: string, definition: EventTopicDefinition, projectRoot?: string): void; export declare function readCanonicalTopicFile(file: string, projectRoot?: string): Promise; export declare function findPublishedTopicTags(projectRoot?: string): Promise; export declare function validateEventTopicsProject(projectRoot?: string, requestedDirectory?: string): Promise; export declare function topicBodyForTransport(definition: EventTopicDefinition): Record;