/// <reference types="mongoose/types/pipelinestage" />
/// <reference types="mongoose/types/error" />
/// <reference types="mongoose/types/connection" />
import { Document, Types } from 'mongoose';
export declare const __NO_ACK__ = "__NO_ACK__";
export interface SubscriptionErrorDoc extends Document {
    parentIds: Types.ObjectId[];
    durableName: string;
    clientGroup: string;
    subject: string;
    errorCount: number;
    error: {
        message?: string;
        stack?: string;
        createdAt: Date;
    }[];
    isResolved: boolean;
    createdAt: Date;
    updatedAt: Date;
}
export declare const SubscriptionError: import("mongoose").Model<SubscriptionErrorDoc, {}, {}, {}>;
export declare const createSubscriptionError: (data: {
    parentIds: Types.ObjectId[];
    durableName: string;
    clientGroup: string;
    subject: string;
    error: {
        message?: string;
        stack?: string;
    };
}) => Promise<Pick<import("mongoose")._LeanDocument<SubscriptionErrorDoc & {
    _id: any;
}>, "_id" | "__v" | "id" | "durableName" | "clientGroup" | "subject" | "errorCount" | "error" | "isResolved" | "createdAt" | "updatedAt" | "parentIds">>;
export declare const getFail: ({ parentIds, ack, nak, durableName, clientGroup, subject, eventHandlerOrder, maxRetryCount, showError, }: {
    parentIds: Types.ObjectId[];
    ack: () => void;
    nak: (delay: number) => void;
    durableName: string;
    clientGroup: string;
    subject: string;
    eventHandlerOrder: number;
    maxRetryCount: number;
    showError: boolean;
}) => (error: Error) => Promise<void>;
