import { BaseChain } from "@0xsquid/squid-types";
import type { ModuleInterface } from "@creit.tech/stellar-wallets-kit";
import { Token } from "./tokens";
export interface StellarConnector extends ModuleInterface {
}
export declare enum StellarHorizonAssetType {
    /**
     * XLM native token
     */
    NATIVE = "native",
    /**
     * 1-4 char asset code (e.g. USDC)
     */
    ALPHANUM4 = "credit_alphanum4",
    /**
     * 5-12 char asset code (e.g. wstETH)
     */
    ALPHANUM12 = "credit_alphanum12"
}
export interface StellarHorizonNativeAsset {
    balance: string;
    asset_type: StellarHorizonAssetType.NATIVE;
}
export interface StellarHorizonIssuedAsset {
    balance: string;
    asset_type: Exclude<StellarHorizonAssetType, StellarHorizonAssetType.NATIVE>;
    asset_code: string;
    asset_issuer: string;
    limit: string;
}
export type StellarTrustLine = StellarHorizonIssuedAsset;
export declare enum StellarTokenType {
    NATIVE_TOKEN = "nativeToken",
    ISSUER_TOKEN = "issuerToken",
    CONTRACT_TOKEN = "contractToken"
}
export interface StellarToken extends Token {
    chainAssetConfig: {
        stellar: {
            assetType: StellarTokenType;
            contractAddress: string;
        };
    };
}
export interface StellarIssuedToken extends StellarToken {
    chainAssetConfig: {
        stellar: {
            assetType: StellarTokenType.ISSUER_TOKEN;
            contractAddress: string;
        };
    };
}
export interface StellarChain extends BaseChain {
    horizonRpcList: string[];
}
