import { AudienceCriteria, AudienceQueryOptions, AudienceExecutionResult, AudienceBuilderConfig, CreateAudienceData, UpdateAudienceData } from './types'; export declare class AudienceModule { private audienceRepository; private memberRepository; private contactRepository; private staticExecutor; constructor(config?: AudienceBuilderConfig); setRepositories(repositories: { contactRepository?: any; audienceRepository?: any; memberRepository?: any; }): void; executeQuery(criteria: string | AudienceCriteria, options: AudienceQueryOptions): Promise; getContactCount(criteria: string | AudienceCriteria, options: Omit): Promise; getContactIds(criteria: string | AudienceCriteria, organizationId: string, projectId: string): Promise>; matchesContact(criteria: string | AudienceCriteria, organizationId: string, projectId: string, contactId: string, options?: { triggerEvent?: { event_id?: string; event_name?: string; event_timestamp?: string; }; }): Promise; createAudience(data: CreateAudienceData): Promise<{ data: any; error: null; }>; updateAudience(id: string, updateData: UpdateAudienceData, organizationId: string, projectId: string): Promise<{ data: any; error: null; }>; getAudienceById(id: string, organizationId: string, projectId: string): Promise; deleteAudience(id: string): Promise; hasEventRule(criteria: any, eventName: string): boolean; addMembers(audienceId: string, contactIds: string[], organizationId: string, projectId: string, origin?: 'realtime' | 'backfill'): Promise; getMembers(audienceId: string, organizationId: string, projectId: string, pagination?: { page?: number; limit?: number; }): Promise; validateCriteria(criteria: string | AudienceCriteria): { valid: boolean; errors: string[]; }; getAudienceType(criteria: string | AudienceCriteria): 'static' | 'live'; private executeLiveQuery; } //# sourceMappingURL=AudienceModule.d.ts.map