import type { BlockViewer, ChainContractViewer, ChainQualified, HydratedTransactionStateValidationFunction, HydratedTransactionValidationError, HydratedTransactionValidationFunction, SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta, TransactionValidationConfig, TransactionValidationViewer } from '@xyo-network/xl1-protocol/protocol-lib';
import type { CreatableProviderParams } from '../../CreatableProvider/index.js';
import { AbstractCreatableProvider } from '../../CreatableProvider/index.js';
/** Parameters for SimpleTransactionValidationViewer. */
export interface SimpleTransactionValidationViewerParams extends CreatableProviderParams {
    /** max Uncle Window Size configuration or state exposed by this contract. */
    maxUncleWindowSize?: number;
    /** protocol configuration or state exposed by this contract. */
    protocol?: HydratedTransactionValidationFunction;
    /** Current state represented by the update. */
    state?: HydratedTransactionStateValidationFunction;
}
/** SimpleTransactionValidationViewer implementation. */
export declare class SimpleTransactionValidationViewer extends AbstractCreatableProvider<SimpleTransactionValidationViewerParams> implements TransactionValidationViewer {
    /** Connection kinds supported by this provider. */
    static readonly connectionTypes: readonly ["lmdb", "mongo", "memory", "rpc"];
    /** Primary moniker used to resolve this provider. */
    static readonly defaultMoniker: "TransactionValidationViewer";
    /** Provider monikers that must resolve before this provider can be created. */
    static readonly dependencies: ("BlockViewer" | "AccountBalanceViewer" | "ChainContractViewer")[];
    /** Provider monikers implemented by this provider class. */
    static readonly monikers: "TransactionValidationViewer"[];
    /** Read, write, or mixed capability surface exposed by the provider. */
    static readonly surface: "node";
    /** Moniker implemented by this provider instance. */
    moniker: "TransactionValidationViewer";
    private _accountBalanceViewer;
    private _blockViewer;
    private _chainContractViewer;
    protected get blockViewer(): BlockViewer<"BlockViewer">;
    protected get chainContractViewer(): ChainContractViewer;
    protected get maxUncleWindowSize(): number;
    /** Returns the params handler result exposed by this provider. */
    static paramsHandler(params: Partial<SimpleTransactionValidationViewerParams>): Promise<SimpleTransactionValidationViewerParams>;
    /** Creates the provider instance after its dependencies and configuration have resolved. */
    createHandler(): Promise<void>;
    /** Validates transaction with explicit chain qualification. */
    qualifiedValidateTransaction(block: SignedHydratedTransactionWithHashMeta, config?: TransactionValidationConfig): Promise<ChainQualified<HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta>>;
    /** Validates transactions with explicit chain qualification. */
    qualifiedValidateTransactions(transactions: SignedHydratedTransaction[], config?: TransactionValidationConfig): Promise<ChainQualified<(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[]>>;
    /** Validates uncle with explicit chain qualification. */
    qualifiedValidateUncle(_transactions: SignedHydratedTransaction[], _config?: TransactionValidationConfig): Promise<ChainQualified<(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[]>>;
    /** Validates transaction and returns the validation result. */
    validateTransaction(block: SignedHydratedTransaction, config?: TransactionValidationConfig): Promise<HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta>;
    /** Validates transactions and returns the validation result. */
    validateTransactions(transactions: SignedHydratedTransaction[], config?: TransactionValidationConfig): Promise<(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[]>;
    private doValidateProtocol;
    private doValidateState;
}
//# sourceMappingURL=SimpleTransactionValidationViewer.d.ts.map