/**
 * THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
 *
 * Generates Typescript types for analytics events from analytics.spec.yaml
 *
 * @codegen <<SignedSource::f914fb83fac56e7154ef460866628f7d>>
 * @codegenCommand yarn workspace @atlassian/analytics-tooling run analytics:codegen smart-card
 */
import type { AnalyticsEventAttributes, EventKey } from './analytics.types';
type OptionalIfUndefined<T> = undefined extends T ? [param?: T] : [param: T];
export type EventPayloadAttributes<K extends EventKey> = OptionalIfUndefined<AnalyticsEventAttributes[K]>;
type EventTypes = 'ui' | 'track' | 'operational' | 'screen';
type ScreenEventPayload<K extends EventKey> = {
    eventType: 'screen';
    name: string;
    action: 'viewed';
    attributes?: AnalyticsEventAttributes[K];
};
type EventPayload<K extends EventKey> = {
    eventType: Omit<EventTypes, 'screen'>;
    actionSubject: string;
    action: string;
    actionSubjectId?: string;
    attributes?: AnalyticsEventAttributes[K];
};
declare const createEventPayload: <K extends EventKey>(eventKey: K, ...[attributes]: EventPayloadAttributes<K>) => ScreenEventPayload<K> | EventPayload<K>;
export default createEventPayload;
