/**
 * Event types matching GraphQL schema
 */
export declare enum EventType {
    USER_PROMPT = "USER_PROMPT",
    ASSISTANT_RESPONSE = "ASSISTANT_RESPONSE",
    TOOL_USE = "TOOL_USE",
    NOTIFICATION = "NOTIFICATION",
    INTERACTIVE_PROMPT = "INTERACTIVE_PROMPT",
    PROMPT_RESPONSE = "PROMPT_RESPONSE",
    REASONING = "REASONING"
}
export declare enum EventSource {
    DESKTOP = "DESKTOP",
    MOBILE = "MOBILE"
}
export declare enum DeliveryStatus {
    SENT = "SENT",
    DELIVERED = "DELIVERED",
    EXECUTED = "EXECUTED"
}
/**
 * Attachment type (for images/files attached to messages)
 */
export interface Attachment {
    id: string;
    type: string;
    filename?: string;
    s3Key: string;
    size?: number;
    width?: number;
    height?: number;
    isEncrypted?: boolean;
}
/**
 * Event type
 */
export interface Event {
    eventId: string;
    sessionId: string;
    type: EventType;
    source: EventSource;
    content: string;
    timestamp: string;
    metadata?: Record<string, any>;
    promptId?: string;
    attachments?: Attachment[];
    deliveryStatus?: DeliveryStatus;
    deliveredAt?: string;
    executedAt?: string;
    isEncrypted?: boolean;
}
/**
 * GraphQL input for creating events
 */
export interface CreateEventInput {
    sessionId: string;
    type: EventType;
    source: EventSource;
    content: string;
    metadata?: Record<string, any>;
    promptId?: string;
    timestamp?: string;
    isEncrypted?: boolean;
}
/**
 * GraphQL input for updating event status
 */
export interface UpdateEventStatusInput {
    eventId: string;
    sessionId: string;
    timestamp: string;
    deliveryStatus: DeliveryStatus;
}
