import { z } from 'zod/mini';
import type { BoundWitnessHydratorParams } from './BoundWitnessHydrator.js';
import { BoundWitnessHydrator } from './BoundWitnessHydrator.js';
/** A plain BoundWitness with storage meta attached. */
export declare const BoundWitnessWithStorageMetaZod: z.ZodMiniObject<{
    schema: z.ZodMiniLiteral<"network.xyo.boundwitness" & {
        readonly __schema: true;
    }>;
    addresses: z.ZodMiniArray<z.ZodMiniUnion<readonly [z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<Lowercase<string> & {
        readonly __hex: true;
    } & {
        readonly __address: true;
    }, string>>, z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@xyo-network/sdk").XyoQuantAddress, string>>]>>;
    payload_hashes: z.ZodMiniArray<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@ariestools/sdk").BrandedHash, string>>>;
    payload_schemas: z.ZodMiniArray<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@xyo-network/sdk").BrandedSchema<string>, string>>>;
    previous_hashes: z.ZodMiniArray<z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@ariestools/sdk").BrandedHash, string>>>>;
    $destination: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<Lowercase<string> & {
        readonly __hex: true;
    } & {
        readonly __address: true;
    }, string>>, z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@xyo-network/sdk").XyoQuantAddress, string>>]>>;
    $sourceQuery: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@ariestools/sdk").BrandedHash, string>>>;
    $signatures: z.ZodMiniArray<z.ZodMiniUnion<readonly [z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@ariestools/sdk").BrandedHex, string>>, z.ZodMiniNull]>>;
    _hash: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@ariestools/sdk").BrandedHash, string>>;
    _dataHash: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@ariestools/sdk").BrandedHash, string>>;
    _sequence: z.ZodMiniUnion<readonly [z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@xyo-network/sdk").LocalSequence, string>>, z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@xyo-network/sdk").QualifiedSequence, string>>]>;
}, z.core.$strip>;
/** Data contract used by Bound Witness With Storage Meta. */
export type BoundWitnessWithStorageMeta = z.infer<typeof BoundWitnessWithStorageMetaZod>;
/** Conversion helper for Bound Witness With Storage Meta values. */
export declare const asBoundWitnessWithStorageMeta: {
    <T>(value: T): (T & {
        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;
        _sequence: import("@xyo-network/sdk").LocalSequence | import("@xyo-network/sdk").QualifiedSequence;
        $destination?: import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        }) | undefined;
        $sourceQuery?: import("@ariestools/sdk").BrandedHash | undefined;
    }) | undefined;
    <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & {
        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;
        _sequence: import("@xyo-network/sdk").LocalSequence | import("@xyo-network/sdk").QualifiedSequence;
        $destination?: import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        }) | undefined;
        $sourceQuery?: import("@ariestools/sdk").BrandedHash | undefined;
    };
};
/** A hydrated plain BoundWitness tuple [bw, payloads] where bw and each payload have storage meta. */
export declare const HydratedBoundWitnessWithStorageMetaZod: z.ZodMiniTuple<readonly [z.ZodMiniObject<{
    schema: z.ZodMiniLiteral<"network.xyo.boundwitness" & {
        readonly __schema: true;
    }>;
    addresses: z.ZodMiniArray<z.ZodMiniUnion<readonly [z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<Lowercase<string> & {
        readonly __hex: true;
    } & {
        readonly __address: true;
    }, string>>, z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@xyo-network/sdk").XyoQuantAddress, string>>]>>;
    payload_hashes: z.ZodMiniArray<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@ariestools/sdk").BrandedHash, string>>>;
    payload_schemas: z.ZodMiniArray<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@xyo-network/sdk").BrandedSchema<string>, string>>>;
    previous_hashes: z.ZodMiniArray<z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@ariestools/sdk").BrandedHash, string>>>>;
    $destination: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<Lowercase<string> & {
        readonly __hex: true;
    } & {
        readonly __address: true;
    }, string>>, z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@xyo-network/sdk").XyoQuantAddress, string>>]>>;
    $sourceQuery: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@ariestools/sdk").BrandedHash, string>>>;
    $signatures: z.ZodMiniArray<z.ZodMiniUnion<readonly [z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@ariestools/sdk").BrandedHex, string>>, z.ZodMiniNull]>>;
    _hash: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@ariestools/sdk").BrandedHash, string>>;
    _dataHash: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@ariestools/sdk").BrandedHash, string>>;
    _sequence: z.ZodMiniUnion<readonly [z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@xyo-network/sdk").LocalSequence, string>>, z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@xyo-network/sdk").QualifiedSequence, string>>]>;
}, z.core.$strip>, z.ZodMiniArray<z.ZodMiniObject<{
    schema: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@xyo-network/sdk").BrandedSchema<string>, string>>;
    _hash: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@ariestools/sdk").BrandedHash, string>>;
    _dataHash: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@ariestools/sdk").BrandedHash, string>>;
    _sequence: z.ZodMiniUnion<readonly [z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@xyo-network/sdk").LocalSequence, string>>, z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<import("@xyo-network/sdk").QualifiedSequence, string>>]>;
}, z.core.$loose>>], null>;
/** Data contract used by Hydrated Bound Witness With Storage Meta. */
export type HydratedBoundWitnessWithStorageMeta = z.infer<typeof HydratedBoundWitnessWithStorageMetaZod>;
/** Conversion helper for Hydrated Bound Witness With Storage Meta values. */
export declare const asHydratedBoundWitnessWithStorageMeta: {
    <T>(value: T): (T & [{
        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;
        _sequence: import("@xyo-network/sdk").LocalSequence | import("@xyo-network/sdk").QualifiedSequence;
        $destination?: import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        }) | undefined;
        $sourceQuery?: import("@ariestools/sdk").BrandedHash | undefined;
    }, {
        [x: string]: unknown;
        schema: import("@xyo-network/sdk").BrandedSchema<string>;
        _hash: import("@ariestools/sdk").BrandedHash;
        _dataHash: import("@ariestools/sdk").BrandedHash;
        _sequence: import("@xyo-network/sdk").LocalSequence | import("@xyo-network/sdk").QualifiedSequence;
    }[]]) | undefined;
    <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & [{
        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;
        _sequence: import("@xyo-network/sdk").LocalSequence | import("@xyo-network/sdk").QualifiedSequence;
        $destination?: import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        }) | undefined;
        $sourceQuery?: import("@ariestools/sdk").BrandedHash | undefined;
    }, {
        [x: string]: unknown;
        schema: import("@xyo-network/sdk").BrandedSchema<string>;
        _hash: import("@ariestools/sdk").BrandedHash;
        _dataHash: import("@ariestools/sdk").BrandedHash;
        _sequence: import("@xyo-network/sdk").LocalSequence | import("@xyo-network/sdk").QualifiedSequence;
    }[]];
};
/** Construct a BoundWitnessHydrator that accepts plain BoundWitnesses (any subtype). */
export declare function createBoundWitnessHydrator(params: Omit<BoundWitnessHydratorParams<BoundWitnessWithStorageMeta, HydratedBoundWitnessWithStorageMeta>, 'asBoundWitness' | 'asHydrated'>): BoundWitnessHydrator<BoundWitnessWithStorageMeta, HydratedBoundWitnessWithStorageMeta>;
//# sourceMappingURL=createBoundWitnessHydrator.d.ts.map