export interface XodBaseMessageType {
    type: 'ACTION' | 'EVENT' | 'SOURCE' | 'JOB';
    eventId: string;
    eventType: string;
    eventTopic?: string;
    created: number;
    payload: object;
    ttl: number;
    tenantIdentifier: string;
    testRun?: boolean;
    meta?: {
        [key: string]: unknown;
    };
}
export interface EventPayload {
    tenantId: string;
    data?: {
        [key: string]: unknown;
    };
}
export interface XodEventType extends XodBaseMessageType {
    type: 'EVENT';
    payload: EventPayload;
}
export interface XodActionPayloadType {
    content?: string;
    destination?: string;
}
export interface XodActionType extends XodBaseMessageType {
    type: 'ACTION';
    payload: XodActionPayloadType;
}
export interface XodJobType extends XodBaseMessageType {
    type: 'JOB';
    actionIdentifier: string;
    actionVersion: string;
    payload: Record<string, unknown>;
}
export interface XodSourcePayloadType {
    keyField?: string;
    incrementalField?: string;
    collection?: string;
    indexes?: Array<string>;
    body: {
        [key: string]: unknown;
    };
    metadata?: {
        [key: string]: unknown;
    };
    priority?: boolean;
    endOfBatch?: boolean;
}
export interface XodSourceMessageType extends XodBaseMessageType {
    type: 'SOURCE';
    payload: XodSourcePayloadType;
}
export declare function isXodBaseMessageType(obj: XodBaseMessageType): obj is XodBaseMessageType;
export declare function isXodEventType(obj: XodEventType): obj is XodEventType;
export declare function isXodActionType(obj: XodActionType): obj is XodActionType;
