import type { $skipRule, AbolishInlineValidator, AbolishRule } from "./types";
import type { AbolishRuleTyped } from "./functions";
/**
 * $inLine object generator
 * @param fn
 * @param $error
 */
export declare const $inline: (fn: AbolishInlineValidator, $error?: string) => {
    $inline: AbolishInlineValidator;
    $error: string;
} | {
    $inline: AbolishInlineValidator;
    $error?: undefined;
};
/**
 * $inLineAsync object generator
 */
export declare const $inlineAsync: (fn: AbolishInlineValidator, $error?: string) => {
    $inlineAsync: AbolishInlineValidator;
    $error: string;
} | {
    $inlineAsync: AbolishInlineValidator;
    $error?: undefined;
};
/**
 * Skip Rule Function Type
 * @param fn
 */
export declare function $skip<Val, Data>(fn: (val: Val, data: Data) => boolean): {
    $skip: $skipRule;
};
/**
 * Skip if undefined
 * @param rule
 */
export declare function skipIfUndefined(rule: string | Record<string, any> | any[]): {
    $skip: $skipRule;
}[];
/**
 * Skip if is undefined || null
 * @param rule
 */
export declare function skipIfNotDefined(rule: string | Record<string, any> | any[]): {
    $skip: $skipRule;
}[];
/**
 * Optional - alias for skipIfNotDefined
 */
export declare const optional: typeof skipIfNotDefined;
/**
 * Required helper function.
 * @example
 * required("string")
 * // is same as
 * ["required", "string"]
 */
export declare function required(rule: AbolishRule): AbolishRuleTyped;
/**
 * Required helper function for typed rules.
 * @param rule
 * @example
 * requiredT("string")
 * // is same as
 * ["required", "string"]
 */
export declare function requiredT(rule: AbolishRuleTyped): AbolishRuleTyped;
