import { CampaignsOptions, ClaimCouponByPrizeItemParams, ClaimCouponParams, CreateEntryParams, CreateFormEntryParams, CreateSessionParams, CreateUserJourneyLogParams, CreateUserWithTokenParams, FetchEntryParams, GetSessionParams, Session, UpdateEntryParams, UpdateUserParams, UploadImageParams } from '../../types';
export declare class CampaignSDK {
    private readonly options;
    private static instance;
    private readonly logger;
    private storageKeyPrefix;
    private apiKey;
    private campaignId;
    private session?;
    static initialize(opts: CampaignsOptions): CampaignSDK;
    static getInstance(): CampaignSDK;
    private constructor();
    createWebUser(): Promise<import("../../types").CreateUserResponse>;
    createExternalUser({ name, type, externalUserId, }: {
        name: string;
        type: string;
        externalUserId: string;
    }): Promise<import("../../types").CreateUserResponse>;
    createUserWithToken(params: CreateUserWithTokenParams): Promise<import("../../types").User | null>;
    getUser(): Promise<import("../../types").User | null>;
    updateUser(params: UpdateUserParams): Promise<import("../../types").User | null>;
    createEntry(params: CreateEntryParams): Promise<import("../../types").Entry | null>;
    fetchEntiesByCurrentUser(params?: FetchEntryParams): Promise<import("../../types").Entry[] | null>;
    updateEntry(params: UpdateEntryParams): Promise<import("../../types").Entry | null>;
    createFormEntry(params: CreateFormEntryParams): Promise<import("../../types").FormEntry | null>;
    uploadImage(params: UploadImageParams): Promise<import("../../types").UploadImageResponse | null>;
    drawCoupon(): Promise<import("../../types").Coupon | null>;
    fetchPrizeItems(): Promise<import("../../types").FetchResponse<Partial<import("../../types").PrizeItem>[]>>;
    createSession(params?: CreateSessionParams): Promise<Session>;
    setSessionById(params: GetSessionParams): Promise<Session>;
    claimCoupon(params: ClaimCouponParams): Promise<{
        success: boolean;
    }>;
    claimCouponByPrizeItem(params: ClaimCouponByPrizeItemParams): Promise<import("../../types").Coupon>;
    createUserJourneyLog(params: Omit<CreateUserJourneyLogParams, 'sessionId'>): Promise<import("../../types").UserJourneyLog>;
}
/**
 * Exposed function for making requests to public api routes
 */
export declare const createWebUser: () => Promise<import("../../types").CreateUserResponse>;
export declare const createExternalUser: (params: {
    name: string;
    type: string;
    externalUserId: string;
}) => Promise<import("../../types").CreateUserResponse>;
export declare const createUserWithToken: (params: CreateUserWithTokenParams) => Promise<import("../../types").User | null>;
export declare const getUser: () => Promise<import("../../types").User | null>;
export declare const updateUser: (params: UpdateUserParams) => Promise<import("../../types").User | null>;
export declare const createEntry: (params: CreateEntryParams) => Promise<import("../../types").Entry | null>;
export declare const updateEntry: (params: UpdateEntryParams) => Promise<import("../../types").Entry | null>;
export declare const fetchEntriesByCurrentUser: (params?: FetchEntryParams) => Promise<import("../../types").Entry[] | null>;
export declare const createFormEntry: (params: CreateFormEntryParams) => Promise<import("../../types").FormEntry | null>;
export declare const uploadImage: (params: UploadImageParams) => Promise<import("../../types").UploadImageResponse | null>;
export declare const drawCoupon: () => Promise<import("../../types").Coupon | null>;
export declare const createSession: (params?: CreateSessionParams) => Promise<Session>;
export declare const setSessionById: (params: GetSessionParams) => Promise<Session>;
export declare const claimCoupon: (params: ClaimCouponParams) => Promise<{
    success: boolean;
}>;
export declare const claimCouponByPrizeItem: (params: ClaimCouponByPrizeItemParams) => Promise<import("../../types").Coupon>;
export declare const fetchPrizeItems: () => Promise<import("../../types").FetchResponse<Partial<import("../../types").PrizeItem>[]>>;
export declare const createUserJourneyLog: (params: Omit<CreateUserJourneyLogParams, 'sessionId'>) => Promise<import("../../types").UserJourneyLog>;
