export interface QueueConfiguration {
    id: string;
    mcpToolName: string;
    delayType: 'fixed' | 'random';
    delayUnit: 'seconds' | 'minutes' | 'hours' | 'days';
    delayValue?: number;
    delayMin?: number;
    delayMax?: number;
    dailyLimit: number;
    hourlyLimit: number;
    activeHours?: {
        timezone: string;
        schedule: {
            [day: string]: {
                enabled: boolean;
                start?: string;
                end?: string;
            };
        };
    };
    createdAt: number;
    updatedAt: number;
    lastUsed?: number;
    totalProcessed: number;
}
export interface QueueState {
    queueId: string;
    lastReleaseTime: number;
    itemCount: number;
    currentExecutingItem: string | null;
    lastExecutedTime: number;
    version: number;
}
export interface QueueUsage {
    date: string;
    hour: string;
    dailyCount: number;
    hourlyCount: number;
}
export interface QueueItem {
    id: string;
    queueId: string;
    releaseTime: number;
    targetAction: string;
    actionConfig: any;
    status: 'scheduled' | 'processing' | 'completed' | 'failed';
    createdAt: number;
    lastError?: string;
}
export interface QueueStatus {
    pendingItems: number;
    currentlyExecuting: string | null;
    lastExecutedTime: string | null;
    dailyUsed: number;
    dailyLimit: number;
    dailyRemaining: number | null;
    hourlyUsed: number;
    hourlyLimit: number;
    hourlyRemaining: number | null;
    isWithinActiveHours?: boolean;
    nextActiveWindow?: string;
}
