import { SchemaDefinition, SchemaValue, Schema, SchemaValidationError, StringValue, ArrayValue } from '@coveo/bueno';
import { SerializedError } from '@reduxjs/toolkit';
import type { CoreEngine, CoreEngineNext } from '../app/engine.js';
export declare const requiredNonEmptyString: StringValue<string>;
export declare const nonEmptyString: StringValue<string>;
export declare const requiredEmptyAllowedString: StringValue<string>;
export declare const nonRequiredEmptyAllowedString: StringValue<string>;
export declare const nonEmptyStringArray: ArrayValue<import("@coveo/bueno").PrimitivesValues>;
export declare const optionalNonEmptyVersionString: StringValue<string>;
export declare const optionalTrackingId: StringValue<string>;
export declare const requiredTrackingId: StringValue<string>;
export declare const serializeSchemaValidationError: ({ message, name, stack, }: SchemaValidationError) => SerializedError;
/**
 * Validates an action payload and throws an error if invalid
 * @param payload the action payload
 * @param definition Either a Bueno SchemaDefinition or a SchemaValue
 */
export declare const validatePayloadAndThrow: <P>(payload: P, definition: SchemaDefinition<Required<P>> | SchemaValue<P>) => {
    payload: P;
};
/**
 * Validates an action payload and return an `error` alongside the payload if it's invalid
 * @param payload the action payload
 * @param definition Either a Bueno SchemaDefinition or a SchemaValue
 */
export declare const validatePayload: <P>(payload: P, definition: SchemaDefinition<Required<P>> | SchemaValue<P>) => {
    payload: P;
    error?: SerializedError;
};
export declare const validateInitialState: <T extends object>(engine: CoreEngine | CoreEngineNext, schema: Schema<T>, obj: T | undefined, functionName: string) => Partial<T>;
export declare const validateOptions: <T extends object>(engine: CoreEngine<object> | CoreEngineNext<object>, schema: Schema<T>, obj: Partial<T> | undefined, functionName: string) => Partial<Partial<T>>;
