import { PrismaClient } from '../../../../../kysely/types.ts';
export declare class ActiveUserBillingRepository {
    private readonly prismaClient;
    constructor(prismaClient: PrismaClient);
    /**
     * Get all managed user emails for a platform org identified by its PlatformBilling subscription ID.
     */
    getManagedUserEmailsBySubscriptionId(subscriptionId: string): Promise<{
        email: string;
    }[]>;
    /**
     * Get all member emails for a regular organization identified by its org (team) ID.
     * Uses the Membership table to find accepted org members.
     */
    getOrgMemberEmailsByOrgId(orgId: number): Promise<{
        email: string;
    }[]>;
    /**
     * Find platform-managed users (by email) who hosted at least one booking in the given period.
     * Filters on isPlatformManaged to match only platform org users.
     */
    getActivePlatformUsersAsHost(subscriptionId: string, periodStart: Date, periodEnd: Date): Promise<{
        email: string;
    }[]>;
    /**
     * Find users (by email) who hosted at least one booking in the given period.
     */
    getActiveUsersAsHost(userEmails: string[], periodStart: Date, periodEnd: Date): Promise<{
        email: string;
    }[]>;
    /**
     * Find users (by email) who attended at least one booking in the given period.
     */
    getActiveUsersAsAttendee(userEmails: string[], periodStart: Date, periodEnd: Date): Promise<{
        email: string;
    }[]>;
}
//# sourceMappingURL=ActiveUserBillingRepository.d.ts.map