import DataLoader from 'dataloader';
import { AdminContextProvider } from '../../admin-context/providers/admin-context.provider.js';
import { TenantAwareDBClient } from '../../app-providers/tenant-db-client.js';
import { AuditLogsProvider } from '../../common/providers/audit-logs.provider.js';
import { BusinessUsersProvider } from './business-users.provider.js';
export declare class InvitationsProvider {
    private db;
    private adminContextProvider;
    private businessUsersProvider;
    private auditLogsProvider;
    constructor(db: TenantAwareDBClient, adminContextProvider: AdminContextProvider, businessUsersProvider: BusinessUsersProvider, auditLogsProvider: AuditLogsProvider);
    private batchInvitationsByEmails;
    getInvitationByEmailLoader: DataLoader<string, import("../types.js").IGetActiveInvitationsByEmailsResult[], string>;
    private batchInvitationsByTokens;
    getInvitationByTokensLoader: DataLoader<string, import("../types.js").IGetInvitationsByTokensResult[], string>;
    insertInvitation({ email, roleId, auth0UserId, invitedByUserId, ownerId, }: {
        email: string;
        roleId: string;
        auth0UserId: string;
        invitedByUserId: string;
        ownerId: string;
    }): Promise<{
        id: string;
        email: string;
        roleId: string;
        expiresAt: Date;
        token: string;
    }>;
}
