import '#spruce/permissions/permissions.types'
{{#each imports}}
import {{importAs}} from '{{package}}'
{{/each}}


const {{nameCamel}}EventContract = buildEventContract({
    eventSignatures: {
        {{#each eventSignatures}}
        '{{@key}}': {
            {{#if isGlobal}}isGlobal: true,{{/if}}
            {{#if description}}description: {{{json description}}},{{/if}}
            {{#if aiInstructions}}aiInstructions: {{{json aiInstructions}}},{{/if}}
            {{#if feed}}feed: {{{json feed}}},{{/if}}
            {{#if emitPermissions}}emitPermissions: {{{json emitPermissions}}},{{/if}}
            {{#if listenPermissions}}listenPermissions: {{{json listenPermissions}}},{{/if}}
            {{#if emitPayloadSchema}}emitPayloadSchema: {{emitPayloadSchema.nameCamel}}Schema,{{/if}}
            {{#if responsePayloadSchema}}responsePayloadSchema: {{responsePayloadSchema.nameCamel}}Schema,{{/if}}
            {{#if emitPermissionContract}}emitPermissionContract: {{{ permissionContractBuilder emitPermissionContract }}},{{/if}}
            {{#if listenPermissionContract}}listenPermissionContract: {{{ permissionContractBuilder listenPermissionContract }}},{{/if}}
        }
        {{/each}}
    }
})
export default {{nameCamel}}EventContract

export type {{namePascal}}EventContract = typeof {{nameCamel}}EventContract
