import type { CampaignClaimRequestDTO, CampaignDTO, CampaignClaimDTO, CampaignTriggerDTO, PaginatedResponseDTO, CampaignClaimIncludeRelation, CampaignIncludeRelation, SortOrder } from '@explorins/pers-sdk';
import type { CampaignClaimFilters } from '@explorins/pers-sdk/campaign';
export type { CampaignClaimFilters } from '@explorins/pers-sdk/campaign';
export type { CampaignFilterOptions } from '@explorins/pers-sdk';
/**
 * Options for fetching campaigns
 * @deprecated Use CampaignFilterOptions from '@explorins/pers-sdk/campaign' instead
 */
export interface GetCampaignsOptions {
    /** Filter by tag(s) - single tag or array for OR match */
    tags?: string | string[];
    /** Free text search across name and description (case-insensitive) */
    search?: string;
    /** Filter by business ID */
    businessId?: string;
    /** Filter campaigns starting on or after this date */
    startDate?: Date | string;
    /** Filter campaigns ending on or before this date */
    endDate?: Date | string;
    /** Page number (1-indexed) */
    page?: number;
    /** Items per page */
    limit?: number;
    /** Sort field */
    sortBy?: 'name' | 'createdAt' | 'startDate';
    /** Sort order */
    sortOrder?: SortOrder;
    /** Relations to include: 'triggerSources', 'businesses', 'claimCount' */
    include?: CampaignIncludeRelation[];
}
export declare const useCampaigns: () => {
    getActiveCampaigns: (options?: GetCampaignsOptions) => Promise<PaginatedResponseDTO<CampaignDTO>>;
    getCampaignById: (campaignId: string, include?: CampaignIncludeRelation[]) => Promise<CampaignDTO | null>;
    claimCampaign: (request: CampaignClaimRequestDTO) => Promise<CampaignClaimDTO | null>;
    getUserClaims: (options?: {
        page?: number;
        limit?: number;
        include?: CampaignClaimIncludeRelation[];
    }) => Promise<PaginatedResponseDTO<CampaignClaimDTO>>;
    getCampaignTriggers: () => Promise<PaginatedResponseDTO<CampaignTriggerDTO>>;
    getAllCampaigns: (options?: GetCampaignsOptions & {
        active?: boolean;
    }) => Promise<PaginatedResponseDTO<CampaignDTO>>;
    getCampaignClaims: (filters?: CampaignClaimFilters, include?: CampaignClaimIncludeRelation[]) => Promise<PaginatedResponseDTO<CampaignClaimDTO>>;
    getCampaignClaimsByUserId: (userId: string, include?: CampaignClaimIncludeRelation[]) => Promise<PaginatedResponseDTO<CampaignClaimDTO>>;
    getCampaignClaimsByBusinessId: (businessId: string, include?: CampaignClaimIncludeRelation[]) => Promise<PaginatedResponseDTO<CampaignClaimDTO>>;
    assignTriggerSource: (campaignId: string, triggerSourceId: string) => Promise<CampaignDTO>;
    removeTriggerSource: (campaignId: string, triggerSourceId: string) => Promise<CampaignDTO>;
    isAvailable: boolean;
};
export type CampaignHook = ReturnType<typeof useCampaigns>;
//# sourceMappingURL=useCampaigns.d.ts.map