import { IntegrationProvider } from './hinkal.types';
import { ERC20Token } from './token.types';
export declare enum ActivityStatus {
    PENDING = "PENDING",
    SUCCESSFUL = "SUCCESSFUL",
    FAILED = "FAILED"
}
export declare enum ActivityTypes {
    SHIELD = "Shield",
    SWAP = "Swap",
    BRIDGE = "Bridge",
    SEND = "Send",
    DAPP_INTERACTION = "dApp interaction",
    DAPP_INTERACTION_APPROVAL = "dApp interaction approval",
    RECIEVE = "Receive",
    UNSHIELD = "Unshield",
    ONBOARDING_DEPOSIT = "Onboarding deposit",
    REVOKE = "Revoke",
    AUTO_SHIELD = "Auto Shield",
    UNKNOWN = "Unknown transaction"
}
export declare enum TokenChangeType {
    SPEND = "SPEND",
    RECEIVE = "RECEIVE",
    APPROVE = "APPROVE"
}
export type TokenAmountInfo = {
    token: ERC20Token;
    amount: string;
    nftIds?: string[];
    usdValue?: string;
};
export declare const DexProviders: IntegrationProvider[];
export declare const IntegrationProviderNames: {
    1: string;
    2: string;
    3: string;
    4: string;
    5: string;
    6: string;
    7: string;
};
export type ActivityRightSideData = {
    rightTop?: React.ReactNode;
    rightTopClassName?: string;
    rightBottom?: React.ReactNode;
    rightBottomClassName?: string;
};
export interface ActivityAddRequest {
    activityType: ActivityTypes;
    chainId: number;
    from: string;
    to: string;
    status?: ActivityStatus;
    txHash?: string;
    gasInDollar?: string;
    extraNativeTokenFee?: string;
    tokensReceive?: TokenAmountInfo[];
    tokensSpend?: TokenAmountInfo[];
    tokensApprove?: TokenAmountInfo[];
    activityIcon?: string;
    dappUrl?: string;
    dappName?: string;
    integrationProvider?: IntegrationProvider;
    knownPartialSignature?: string;
}
export interface Activity extends ActivityAddRequest {
    id: string;
    timestamp: Date;
    status: ActivityStatus;
}
export type MinimalActivity = Pick<Activity, 'timestamp' | 'status' | 'activityType' | 'tokensReceive' | 'tokensSpend' | 'chainId'>;
export interface TimeLeft {
    value: number;
    unit: string;
    expired: boolean;
}
