import { GraphQlRequestError } from "@saasquatch/component-boilerplate/dist/hooks/graphql/useBaseQuery";
import { ReferralCodes } from "./sqm-referral-codes";
export declare const REFERRAL_CODES_NAMESPACE = "sq:referral-codes";
export declare const REFERRAL_CODES_PAGINATION_CONTEXT = "sq:referral-codes-pagination";
export declare const SET_CODE_COPIED: string;
export declare type ReferralCodeContext = {
  refresh: () => void;
  loading?: boolean;
  referralCode: string;
  isUsed: boolean;
  isCopied: boolean;
  shareLink: string;
  singleUse: boolean;
  email: {
    messageLink: string;
  };
  fbmessenger: {
    messageLink: string;
    shareLink: string;
  };
  whatsapp: {
    messageLink: string;
  };
};
export declare type PaginationContext = {
  states: {
    errors: GraphQlRequestError<any>;
    loading: boolean;
    limit: number;
    currentPage: number;
    pageCount: number;
    pageProgress: string;
  };
  callbacks: {
    refetch: (variables: unknown) => Promise<any>;
    setLimit: (newLimit: number) => void;
    setCurrentPage: (newPage: number) => void;
  };
};
export declare function useReferralCodes(props: ReferralCodes): {
  states: {
    noCodes: boolean;
    errors: GraphQlRequestError<any>;
    loading: boolean;
    limit: number;
    currentPage: number;
    pageCount: number;
    pageProgress: string;
  };
  data: ReferralCodeContext;
  callbacks: {};
};
