export interface LogMetric {
    name: string;
    friendly_name: string;
    value: {
        type: 'number' | 'string' | 'boolean';
        value: number | string | boolean;
    };
    unit: string;
}
export interface LogEntry {
    event_id: string;
    item_id: string;
    timestamp: string;
    friendly_name: string;
    purpose?: string;
    context?: string;
    level?: string;
    message?: string;
    metadata?: Record<string, string>;
    metrics?: LogMetric[];
}
export interface CreateLogRequest {
    organization_apikey: string;
    app_apikey: string;
    tenant_apikey?: string;
    log_entry: LogEntry;
}
export interface BatchLog {
    event_id: string;
    item_id: string;
    timestamp: string;
    friendly_name?: string;
    purpose?: string;
    context?: string;
    level?: string;
    message?: string;
    metadata?: Record<string, any>;
    metrics?: Array<{
        name: string;
        friendly_name: string;
        value: any;
        unit: string;
    }>;
}
export interface BatchLogRequest {
    organization_apikey: string;
    app_apikey: string;
    tenant_apikey?: string;
    logs: BatchLog[];
}
export interface BatchLogResponse {
    success_count: number;
    failed_count: number;
    failed_logs?: string[];
}
export interface GetLogsRequest {
    organization_apikey: string;
    app_apikey: string;
    tenant_apikey?: string;
    item_id: string;
    page_size: number;
    page: number;
    before?: string;
    after?: string;
}
export interface LogData {
    item_id: string;
    timestamp: string;
    purpose?: string;
    context?: string;
    level?: string;
    message?: string;
    friendly_name?: string;
    metadata?: Record<string, any>;
    metrics?: Array<{
        name: string;
        friendly_name: string;
        value: any;
        unit: string;
    }>;
}
export interface Log {
    id: number;
    app_id: string;
    tenant_id?: string;
    item_id: string;
    friendly_name?: string;
    log_data: LogData;
    created_at: string;
}
export interface PaginatedLogResponse {
    logs: Log[];
    total_count: number;
    page_size: number;
    page: number;
    total_pages: number;
    has_more: boolean;
}
export interface GetLatestLogsRequest {
    organization_apikey: string;
    app_apikey: string;
    tenant_apikey?: string;
    item_id: string;
    limit?: number;
}
export interface LatestLogsResponse {
    logs: Log[];
}
export interface GetLogByIdRequest {
    organization_apikey: string;
    app_apikey: string;
    tenant_apikey?: string;
}
export interface LogResponse {
    id: number;
    app_id: string;
    tenant_id?: string;
    item_id: string;
    friendly_name?: string;
    log_data: LogData;
    created_at: string;
}
