import { Validation } from '@tempots/std';
import { PathSegment } from './path';
export type ControllerError = {
    message?: string;
    dependencies?: Record<PathSegment, ControllerError>;
};
export type ControllerValidation = Validation<ControllerError>;
/**
 * Helper object for creating ControllerValidation instances.
 *
 * @example
 * ```typescript
 * // Valid state
 * ControllerValidation.valid
 *
 * // Invalid with a message
 * ControllerValidation.invalid('Something went wrong')
 *
 * // Invalid with field-specific errors
 * ControllerValidation.invalidFields({
 *   email: 'Invalid email format',
 *   password: 'Password too short',
 * })
 *
 * // Invalid from a ControllerError object
 * ControllerValidation.fromError({
 *   message: 'Form has errors',
 *   dependencies: { field: { message: 'Error' } }
 * })
 * ```
 */
export declare const ControllerValidation: {
    /** A valid validation result */
    readonly valid: ControllerValidation;
    /**
     * Create an invalid validation with a message
     */
    readonly invalid: (message: string) => ControllerValidation;
    /**
     * Create an invalid validation with field-specific errors.
     * Values can be error messages (strings) or full ControllerError objects.
     */
    readonly invalidFields: (fields: Record<PathSegment, string | ControllerError>) => ControllerValidation;
    /**
     * Create an invalid validation from a ControllerError object
     */
    readonly fromError: (error: ControllerError) => ControllerValidation;
};
export declare function makeMapValidation(fields: PathSegment[]): (status: ControllerValidation) => ControllerValidation;
