/**
 * Registry Type Definitions
 */
import type { WebhookEventType } from "../types/webhook.types";
export interface EndpointFilter {
    status?: "active" | "inactive" | "error" | "suspended";
    events?: WebhookEventType[];
    providerId?: string[];
    channelId?: string[];
    createdAfter?: Date;
    createdBefore?: Date;
    lastTriggeredAfter?: Date;
    lastTriggeredBefore?: Date;
}
export interface DeliveryFilter {
    endpointId?: string;
    eventId?: string;
    status?: "pending" | "success" | "failed" | "exhausted";
    createdAfter?: Date;
    createdBefore?: Date;
    completedAfter?: Date;
    completedBefore?: Date;
    httpStatusCode?: number[];
    hasError?: boolean;
}
export interface EventFilter {
    type?: WebhookEventType[];
    providerId?: string[];
    channelId?: string[];
    templateId?: string[];
    messageId?: string[];
    userId?: string[];
    organizationId?: string[];
    createdAfter?: Date;
    createdBefore?: Date;
}
export interface StorageConfig {
    type: "memory" | "file" | "database";
    filePath?: string;
    enableCompression?: boolean;
    maxFileSize?: number;
    connectionString?: string;
    tableName?: string;
    maxMemoryUsage?: number;
    retentionDays?: number;
    enableEncryption?: boolean;
    encryptionKey?: string;
}
export interface PaginationOptions {
    page: number;
    limit: number;
    sortBy?: string;
    sortOrder?: "asc" | "desc";
}
export interface SearchResult<T> {
    items: T[];
    totalCount: number;
    page: number;
    totalPages: number;
    hasNext: boolean;
    hasPrevious: boolean;
}
