import { Dispatch } from "react";
import { ChainvineUserType, ChainvineWidgetState, StatsCardProps } from "../widget/types";
import { ChainvineCampaignResponseForUser, ChainvineClient, ChainvineUser, ClientConfig, UserRequirementResponse } from "@chainvine/sdk";
export declare enum StateActions {
    SET_USER = "SET_USER",
    SET_USER_CLIENT = "SET_USER_CLIENT",
    SET_CAMPAIGN_ID = "SET_CAMPAIGN_ID",
    SET_CAMPAIGN = "SET_CAMPAIGN",
    SET_REFERRAL_URL = "SET_REFERRAL_URL",
    SET_REFERRALS = "SET_REFERRALS",
    SET_HISTORY = "SET_HISTORY",
    SET_STATS = "SET_STATS",
    SET_REQUIREMENT = "SET_REQUIREMENT",
    SET_CONFIG = "SET_CONFIG",
    SET_CLIENT_CONFIG = "SET_CLIENT_CONFIG",
    TOGGLE_OPEN = "TOGGLE_OPEN"
}
type WidgetAction = {
    type: StateActions;
    payload: object | string;
};
export declare const initialState: ChainvineWidgetState;
export interface ChainvineWidgetContextType {
    state: ChainvineWidgetState;
    dispatch: Dispatch<WidgetAction>;
    isLoadingReferralLink: boolean;
    client: ChainvineClient;
    userClient?: ChainvineUser;
    refetchCampaignForUser: () => void;
    refetchWidgetConfig: () => void;
    fetchConfigAndCampaign: () => void;
    joinCampaign: () => void;
    claimEarnings: () => Promise<void>;
    getReferralUrl: () => Promise<void>;
    verifyRequirement: (id: string) => Promise<void>;
    isJoiningCampaign: boolean;
}
export declare const chainvineReducer: (state: ChainvineWidgetState, action: {
    type: string;
    payload: object | string | number;
}) => {
    toggle_open: boolean;
    campaign_id?: string | undefined;
    userClient?: ChainvineUser | undefined;
    campaign?: ChainvineCampaignResponseForUser | undefined;
    config?: import("@chainvine/sdk").ChainvineWidgetResponse | undefined;
    user?: ChainvineUserType | undefined;
    referral_link?: string | undefined;
    stats?: import("@chainvine/sdk").ChainvineUserWidgetAndStatsResponse | undefined;
    referrals?: import("@chainvine/sdk").UserReferralsResponseReferral[] | undefined;
    events?: import("@chainvine/sdk").UserHistoryEvent[] | undefined;
    referral_columns?: import("@chainvine/sdk").TableColumns[] | undefined;
    history_columns?: import("@chainvine/sdk").TableColumns[] | undefined;
    clientConfig: ClientConfig;
} | {
    config: object;
    campaign_id?: string | undefined;
    userClient?: ChainvineUser | undefined;
    campaign?: ChainvineCampaignResponseForUser | undefined;
    user?: ChainvineUserType | undefined;
    referral_link?: string | undefined;
    stats?: import("@chainvine/sdk").ChainvineUserWidgetAndStatsResponse | undefined;
    referrals?: import("@chainvine/sdk").UserReferralsResponseReferral[] | undefined;
    events?: import("@chainvine/sdk").UserHistoryEvent[] | undefined;
    referral_columns?: import("@chainvine/sdk").TableColumns[] | undefined;
    history_columns?: import("@chainvine/sdk").TableColumns[] | undefined;
    clientConfig: ClientConfig;
    toggle_open: boolean;
} | {
    client: ChainvineClient;
    campaign_id?: string | undefined;
    userClient?: ChainvineUser | undefined;
    campaign?: ChainvineCampaignResponseForUser | undefined;
    config?: import("@chainvine/sdk").ChainvineWidgetResponse | undefined;
    user?: ChainvineUserType | undefined;
    referral_link?: string | undefined;
    stats?: import("@chainvine/sdk").ChainvineUserWidgetAndStatsResponse | undefined;
    referrals?: import("@chainvine/sdk").UserReferralsResponseReferral[] | undefined;
    events?: import("@chainvine/sdk").UserHistoryEvent[] | undefined;
    referral_columns?: import("@chainvine/sdk").TableColumns[] | undefined;
    history_columns?: import("@chainvine/sdk").TableColumns[] | undefined;
    clientConfig: ClientConfig;
    toggle_open: boolean;
} | {
    referrals: object[];
    referral_columns: object[];
    campaign_id?: string | undefined;
    userClient?: ChainvineUser | undefined;
    campaign?: ChainvineCampaignResponseForUser | undefined;
    config?: import("@chainvine/sdk").ChainvineWidgetResponse | undefined;
    user?: ChainvineUserType | undefined;
    referral_link?: string | undefined;
    stats?: import("@chainvine/sdk").ChainvineUserWidgetAndStatsResponse | undefined;
    events?: import("@chainvine/sdk").UserHistoryEvent[] | undefined;
    history_columns?: import("@chainvine/sdk").TableColumns[] | undefined;
    clientConfig: ClientConfig;
    toggle_open: boolean;
} | {
    events: object[];
    history_columns: object[];
    campaign_id?: string | undefined;
    userClient?: ChainvineUser | undefined;
    campaign?: ChainvineCampaignResponseForUser | undefined;
    config?: import("@chainvine/sdk").ChainvineWidgetResponse | undefined;
    user?: ChainvineUserType | undefined;
    referral_link?: string | undefined;
    stats?: import("@chainvine/sdk").ChainvineUserWidgetAndStatsResponse | undefined;
    referrals?: import("@chainvine/sdk").UserReferralsResponseReferral[] | undefined;
    referral_columns?: import("@chainvine/sdk").TableColumns[] | undefined;
    clientConfig: ClientConfig;
    toggle_open: boolean;
} | {
    stats: StatsCardProps[];
    campaign_id?: string | undefined;
    userClient?: ChainvineUser | undefined;
    campaign?: ChainvineCampaignResponseForUser | undefined;
    config?: import("@chainvine/sdk").ChainvineWidgetResponse | undefined;
    user?: ChainvineUserType | undefined;
    referral_link?: string | undefined;
    referrals?: import("@chainvine/sdk").UserReferralsResponseReferral[] | undefined;
    events?: import("@chainvine/sdk").UserHistoryEvent[] | undefined;
    referral_columns?: import("@chainvine/sdk").TableColumns[] | undefined;
    history_columns?: import("@chainvine/sdk").TableColumns[] | undefined;
    clientConfig: ClientConfig;
    toggle_open: boolean;
} | {
    stats: UserRequirementResponse;
    campaign_id?: string | undefined;
    userClient?: ChainvineUser | undefined;
    campaign?: ChainvineCampaignResponseForUser | undefined;
    config?: import("@chainvine/sdk").ChainvineWidgetResponse | undefined;
    user?: ChainvineUserType | undefined;
    referral_link?: string | undefined;
    referrals?: import("@chainvine/sdk").UserReferralsResponseReferral[] | undefined;
    events?: import("@chainvine/sdk").UserHistoryEvent[] | undefined;
    referral_columns?: import("@chainvine/sdk").TableColumns[] | undefined;
    history_columns?: import("@chainvine/sdk").TableColumns[] | undefined;
    clientConfig: ClientConfig;
    toggle_open: boolean;
};
export {};
