import type * as Hex from 'ox/Hex';
import { MultisigOperation, TxEnvelopeTempo } from 'ox/tempo';
import { BaseError } from '../../errors/base.js';
import type * as Store from '../Store.js';
/** Reads a persisted multisig operation. */
export declare function read(store: Store.Store, hash: Hex.Hex): Promise<MultisigOperation.Operation | null>;
/** Atomically updates a multisig operation. */
export declare function update(store: Store.Atomic, hash: Hex.Hex, update: (operation: MultisigOperation.Operation | null) => MultisigOperation.Operation | Promise<MultisigOperation.Operation>): Promise<MultisigOperation.Operation>;
/** Reads a submission hash without rebuilding its envelope from mutable configurations. */
export declare function readSubmission(store: Store.Store, operation: MultisigOperation.TransactionOperation, submissionId: Hex.Hex): Promise<Hex.Hex | null>;
/** Removes a persisted final envelope after its submission is settled. */
export declare function removeSubmission(store: Store.Store, hash: Hex.Hex, submissionId: Hex.Hex): Promise<void>;
/** Persists the final envelope before broadcast so recovery uses the exact transaction. */
export declare function writeSubmission(store: Store.Atomic, hash: Hex.Hex, submissionId: Hex.Hex, transaction: TxEnvelopeTempo.Serialized): Promise<void>;
/** Thrown when a stored multisig operation is malformed or unsupported. */
export declare class InvalidStoreValueError extends BaseError {
    /** Creates an invalid store value error. */
    constructor(options?: InvalidStoreValueError.Options);
}
export declare namespace InvalidStoreValueError {
    /** Error construction options. */
    type Options = {
        /** Underlying error. */
        cause?: unknown | undefined;
    };
}
/** Thrown when a multisig operation cannot be updated due to contention. */
export declare class StoreConflictError extends BaseError {
    /** Creates a store conflict error. */
    constructor();
}
//# sourceMappingURL=Operation.d.ts.map