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 {
    maxUncleWindowSize?: number;
    protocol?: HydratedTransactionValidationFunction;
    state?: HydratedTransactionStateValidationFunction;
}
/** SimpleTransactionValidationViewer implementation. */
export declare class SimpleTransactionValidationViewer extends AbstractCreatableProvider<SimpleTransactionValidationViewerParams> implements TransactionValidationViewer {
    static readonly connectionTypes: readonly ["lmdb", "mongo", "memory", "rpc"];
    static readonly defaultMoniker: "TransactionValidationViewer";
    static readonly dependencies: ("BlockViewer" | "AccountBalanceViewer" | "ChainContractViewer")[];
    static readonly monikers: "TransactionValidationViewer"[];
    static readonly surface: "node";
    moniker: "TransactionValidationViewer";
    private _accountBalanceViewer;
    private _blockViewer;
    private _chainContractViewer;
    protected get blockViewer(): BlockViewer<"BlockViewer">;
    protected get chainContractViewer(): ChainContractViewer;
    protected get maxUncleWindowSize(): number;
    static paramsHandler(params: Partial<SimpleTransactionValidationViewerParams>): Promise<SimpleTransactionValidationViewerParams>;
    createHandler(): Promise<void>;
    qualifiedValidateTransaction(block: SignedHydratedTransactionWithHashMeta, config?: TransactionValidationConfig): Promise<ChainQualified<HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta>>;
    qualifiedValidateTransactions(transactions: SignedHydratedTransaction[], config?: TransactionValidationConfig): Promise<ChainQualified<(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[]>>;
    qualifiedValidateUncle(_transactions: SignedHydratedTransaction[], _config?: TransactionValidationConfig): Promise<ChainQualified<(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[]>>;
    validateTransaction(block: SignedHydratedTransaction, config?: TransactionValidationConfig): Promise<HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta>;
    validateTransactions(transactions: SignedHydratedTransaction[], config?: TransactionValidationConfig): Promise<(HydratedTransactionValidationError[] | SignedHydratedTransactionWithHashMeta)[]>;
    private doValidateProtocol;
    private doValidateState;
}
//# sourceMappingURL=SimpleTransactionValidationViewer.d.ts.map