import type { WithHashMeta, XyoAddress } from '@xyo-network/sdk';
import type { AccountBalanceConfig, AccountBalanceHistoryItem, AccountBalanceViewer, BlockViewer, ChainQualification, ChainQualified, XL1BlockNumber } from '@xyo-network/xl1-protocol/protocol-lib';
import { AttoXL1 } from '@xyo-network/xl1-protocol/protocol-lib';
import type { CreatableProviderParams } from '../../CreatableProvider/index.js';
import { AbstractCreatableProvider } from '../../CreatableProvider/index.js';
import type { BalancesStepSummary, TransfersStepSummary } from '../../summary/index.js';
import { IndexViewerSummaryMap } from '../../summary/index.js';
/** Parameters for SimpleAccountBalanceViewer. */
export type SimpleAccountBalanceViewerParams = CreatableProviderParams;
/**
 * SimpleAccountBalanceViewer implementation. Unlike storage-coupled `Simple*` viewers (e.g.
 * `SimpleFinalizationViewer`, which self-provisions an archivist that varies by connection type),
 * this class takes no storage-specific param — it only locates `BlockViewer` and (optionally)
 * `IndexViewer`, each resolved via their own separate bindings. It therefore explicitly consumes
 * no connection of its own; `JsonRpcAccountBalanceViewer` remains selected only by an `rpc` binding.
 */
export declare class SimpleAccountBalanceViewer extends AbstractCreatableProvider<SimpleAccountBalanceViewerParams> implements AccountBalanceViewer {
    /** Connection kinds supported by this provider. */
    static readonly connectionTypes: readonly ["none"];
    /** Primary moniker used to resolve this provider. */
    static readonly defaultMoniker: "AccountBalanceViewer";
    /** Provider monikers that must resolve before this provider can be created. */
    static readonly dependencies: "BlockViewer"[];
    /** Provider monikers implemented by this provider class. */
    static readonly monikers: "AccountBalanceViewer"[];
    /** Read, write, or mixed capability surface exposed by the provider. */
    static readonly surface: "node";
    /** Moniker implemented by this provider instance. */
    moniker: "AccountBalanceViewer";
    private _balanceStepSemaphores;
    private _balancesSummaryMap;
    private _blockViewer;
    private _indexViewer?;
    private _transferStepSemaphores;
    private _transfersSummaryMap;
    /** Returns the balances summary map result exposed by this provider. */
    get balancesSummaryMap(): IndexViewerSummaryMap<WithHashMeta<BalancesStepSummary>>;
    /** Returns the block viewer result exposed by this provider. */
    get blockViewer(): BlockViewer<"BlockViewer">;
    /** Returns the transfers summary map result exposed by this provider. */
    get transfersSummaryMap(): IndexViewerSummaryMap<WithHashMeta<TransfersStepSummary>>;
    /** Returns the account balance result exposed by this provider. */
    accountBalance(address: XyoAddress, config?: AccountBalanceConfig): Promise<AttoXL1>;
    /** Returns the account balance histories result exposed by this provider. */
    accountBalanceHistories(addresses: XyoAddress[], config?: AccountBalanceConfig): Promise<Record<XyoAddress, AccountBalanceHistoryItem[]>>;
    /** Returns the account balance history result exposed by this provider. */
    accountBalanceHistory(address: XyoAddress, config?: AccountBalanceConfig): Promise<[{
        $epoch: number;
        block: XL1BlockNumber;
        chain: import("@ariestools/sdk").BrandedHex;
        previous: import("@ariestools/sdk").BrandedHash | null;
        schema: "network.xyo.boundwitness" & {
            readonly __schema: true;
        };
        addresses: (import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        }))[];
        payload_hashes: import("@ariestools/sdk").BrandedHash[];
        payload_schemas: import("@xyo-network/sdk").BrandedSchema<string>[];
        previous_hashes: (import("@ariestools/sdk").BrandedHash | null)[];
        $signatures: (import("@ariestools/sdk").BrandedHex | null)[];
        _hash: import("@ariestools/sdk").BrandedHash;
        _dataHash: import("@ariestools/sdk").BrandedHash;
        protocol?: number | undefined;
        step_hashes?: import("@ariestools/sdk").BrandedHash[] | undefined;
        $destination?: import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        }) | undefined;
        $sourceQuery?: import("@ariestools/sdk").BrandedHash | undefined;
    }, {
        schema: "network.xyo.boundwitness" & {
            readonly __schema: true;
        };
        addresses: (import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        }))[];
        payload_hashes: import("@ariestools/sdk").BrandedHash[];
        payload_schemas: import("@xyo-network/sdk").BrandedSchema<string>[];
        previous_hashes: (import("@ariestools/sdk").BrandedHash | null)[];
        $signatures: (import("@ariestools/sdk").BrandedHex | null)[];
        nbf: XL1BlockNumber;
        exp: XL1BlockNumber;
        fees: {
            base: import("@ariestools/sdk").BrandedHex;
            gasLimit: import("@ariestools/sdk").BrandedHex;
            gasPrice: import("@ariestools/sdk").BrandedHex;
            priority: import("@ariestools/sdk").BrandedHex;
        };
        chain: import("@ariestools/sdk").BrandedHex;
        from: import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        });
        _hash: import("@ariestools/sdk").BrandedHash;
        _dataHash: import("@ariestools/sdk").BrandedHash;
        $destination?: import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        }) | undefined;
        $sourceQuery?: import("@ariestools/sdk").BrandedHash | undefined;
        script?: string[] | undefined;
    } | null, {
        schema: "network.xyo.transfer" & {
            readonly __schema: true;
        };
        epoch: number;
        from: import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        });
        transfers: Record<import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        }), import("@ariestools/sdk").BrandedHex>;
        _hash: import("@ariestools/sdk").BrandedHash;
        _dataHash: import("@ariestools/sdk").BrandedHash;
        context?: import("@ariestools/sdk").JsonObject | undefined;
    }][]>;
    /** Returns the account balances result exposed by this provider. */
    accountBalances(address: XyoAddress[], config?: AccountBalanceConfig): Promise<Record<(Lowercase<string> & {
        readonly __hex: true;
    } & {
        readonly __address: true;
    }) | import("@xyo-network/sdk").XyoQuantAddress, AttoXL1>>;
    /** Creates the provider instance after its dependencies and configuration have resolved. */
    createHandler(): Promise<void>;
    /** Returns the qualified account balance histories result exposed by this provider. */
    qualifiedAccountBalanceHistories(addresses: XyoAddress[], config: AccountBalanceConfig): Promise<[Record<XyoAddress, AccountBalanceHistoryItem[]>, ChainQualification]>;
    /** Returns the qualified account balances result exposed by this provider. */
    qualifiedAccountBalances(address: XyoAddress[], config: AccountBalanceConfig): Promise<ChainQualified<Record<XyoAddress, AttoXL1>>>;
    /** Returns the start handler result exposed by this provider. */
    startHandler(): Promise<void>;
    private distillTransferHistory;
    private qualifiedAccountBalanceHistory;
}
//# sourceMappingURL=SimpleAccountBalanceViewer.d.ts.map