/**
 * Lightweight Radix Gateway API client replacing the heavy
 * @radixdlt/babylon-gateway-api-sdk (~2.7 MB).
 *
 * Only implements the endpoints actually used by xchain-radix.
 */
export type LedgerState = {
    network: string;
    state_version: number;
    proposer_round_timestamp: string;
    epoch: number;
    round: number;
};
export type GatewayStatusResponse = {
    ledger_state: LedgerState;
};
export type FungibleResourcesCollectionItem = {
    aggregation_level: string;
    resource_address: string;
    amount: number | string;
    last_updated_at_state_version: number;
};
export type NonFungibleResourcesCollectionItem = {
    aggregation_level: string;
    resource_address: string;
    amount: number;
    last_updated_at_state_version: number;
};
export type StateEntityDetailsVaultResponseItem = {
    address: string;
    details?: {
        type: string;
        divisibility?: number;
        [key: string]: any;
    };
    [key: string]: any;
};
export type StateEntityFungiblesPageRequest = {
    address: string;
    limit_per_page: number;
    cursor?: string;
    at_ledger_state?: {
        state_version: number;
    };
};
export type StateEntityFungiblesPageResponse = {
    ledger_state: LedgerState;
    total_count?: number;
    items: FungibleResourcesCollectionItem[];
    next_cursor?: string;
    address?: string;
};
export type StateEntityNonFungiblesPageRequest = {
    address: string;
    limit_per_page: number;
    cursor?: string;
    at_ledger_state?: {
        state_version: number;
    };
};
export type StateEntityNonFungiblesPageResponse = {
    ledger_state: LedgerState;
    total_count?: number;
    items: NonFungibleResourcesCollectionItem[];
    next_cursor?: string;
    address?: string;
};
export type GatewayPublicKey = {
    key_type: string;
    key_hex: string;
};
export type TransactionPreviewRequest = {
    manifest: string;
    blobs_hex: string[];
    start_epoch_inclusive: number;
    end_epoch_exclusive: number;
    notary_public_key: GatewayPublicKey;
    notary_is_signatory: boolean;
    tip_percentage: number;
    nonce: number;
    signer_public_keys: GatewayPublicKey[];
    flags: {
        assume_all_signature_proofs: boolean;
        skip_epoch_check: boolean;
        use_free_credit: boolean;
    };
};
export type TransactionPreviewResponse = {
    receipt: {
        status: string;
        fee_summary: {
            execution_cost_units_consumed: number;
            finalization_cost_units_consumed: number;
            xrd_total_execution_cost: string;
            xrd_total_finalization_cost: string;
            xrd_total_royalty_cost: string;
            xrd_total_storage_cost: string;
            xrd_total_tipping_cost: string;
        };
        [key: string]: any;
    };
    [key: string]: any;
};
export type TransactionSubmitResponse = {
    duplicate: boolean;
};
export type CommittedTransactionInfo = {
    transaction_status: string;
    state_version: number;
    epoch: number;
    round: number;
    round_timestamp: string;
    payload_hash: string;
    intent_hash: string;
    fee_paid: string;
    confirmed_at?: Date;
    raw_hex?: string;
    receipt?: {
        status: string;
    };
    manifest_classes?: string[];
};
export type TransactionCommittedDetailsResponse = {
    ledger_state?: LedgerState;
    transaction: CommittedTransactionInfo;
};
export type StreamTransactionsRequest = {
    affected_global_entities_filter?: string[];
    limit_per_page?: number;
    from_ledger_state?: {
        state_version: number;
    };
    manifest_resources_filter?: string[];
    opt_ins?: {
        raw_hex?: boolean;
    };
    cursor?: string;
};
export type StreamTransactionsResponse = {
    items: CommittedTransactionInfo[];
    next_cursor?: string;
};
export type TransactionStatusResponse = {
    status: string;
    intent_hash: string;
};
export declare class RadixGatewayApi {
    private baseUrl;
    constructor(networkId: number);
    private post;
    getStatus(): Promise<GatewayStatusResponse>;
    getEntityDetailsVaultAggregated(addresses: string[]): Promise<StateEntityDetailsVaultResponseItem[]>;
    getEntityFungiblesPage(request: StateEntityFungiblesPageRequest): Promise<StateEntityFungiblesPageResponse>;
    getEntityNonFungiblesPage(request: StateEntityNonFungiblesPageRequest): Promise<StateEntityNonFungiblesPageResponse>;
    previewTransaction(request: TransactionPreviewRequest): Promise<TransactionPreviewResponse>;
    submitTransaction(notarizedTransactionHex: string): Promise<TransactionSubmitResponse>;
    getTransactionDetails(request: {
        intent_hash: string;
        opt_ins?: {
            raw_hex?: boolean;
        };
    }): Promise<TransactionCommittedDetailsResponse>;
    getStreamTransactions(request: StreamTransactionsRequest): Promise<StreamTransactionsResponse>;
    getTransactionStatus(intentHash: string): Promise<TransactionStatusResponse>;
}
