///
import { Component } from '@builder.io/qwik';
import { Cookie } from '@builder.io/qwik-city/middleware/request-handler';
import { CookieOptions } from '@builder.io/qwik-city/middleware/request-handler';
import { CookieValue } from '@builder.io/qwik-city/middleware/request-handler';
import { DeferReturn } from '@builder.io/qwik-city/middleware/request-handler';
import type { EnvGetter } from '@builder.io/qwik-city/middleware/request-handler';
import { JSXOutput } from '@builder.io/qwik';
import { QRL } from '@builder.io/qwik';
import { QRLEventHandlerMulti } from '@builder.io/qwik';
import { QwikIntrinsicElements } from '@builder.io/qwik';
import { QwikJSX } from '@builder.io/qwik';
import type { ReadonlySignal } from '@builder.io/qwik';
import { RequestEvent } from '@builder.io/qwik-city/middleware/request-handler';
import { RequestEventAction } from '@builder.io/qwik-city/middleware/request-handler';
import { RequestEventBase } from '@builder.io/qwik-city/middleware/request-handler';
import { RequestEventCommon } from '@builder.io/qwik-city/middleware/request-handler';
import { RequestEventLoader } from '@builder.io/qwik-city/middleware/request-handler';
import { RequestHandler } from '@builder.io/qwik-city/middleware/request-handler';
import type { ResolveSyncValue } from '@builder.io/qwik-city/middleware/request-handler';
import type * as v from 'valibot';
import { ValueOrPromise } from '@builder.io/qwik';
import { z } from 'zod';
import type * as z_2 from 'zod';
/** @public */
export declare type Action, OPTIONAL extends boolean = true> = {
/**
* Returns the `ActionStore` containing the current action state and methods to invoke it from a
* component$(). Like all `use-` functions and methods, it can only be invoked within a
* `component$()`.
*/
(): ActionStore;
};
/** @public */
export declare type ActionConstructor = {
| void | null, VALIDATOR extends TypedDataValidator, REST extends [DataValidator, ...DataValidator[]]>(actionQrl: (data: GetValidatorOutputType, event: RequestEventAction) => ValueOrPromise, options: {
readonly id?: string;
readonly validation: [VALIDATOR, ...REST];
}): Action>> | FailReturn>>, GetValidatorInputType, false>;
| void | null, VALIDATOR extends TypedDataValidator>(actionQrl: (data: GetValidatorOutputType, event: RequestEventAction) => ValueOrPromise, options: {
readonly id?: string;
readonly validation: [VALIDATOR];
}): Action>>>, GetValidatorInputType, false>;
| void | null, REST extends [DataValidator, ...DataValidator[]]>(actionQrl: (data: JSONObject, event: RequestEventAction) => ValueOrPromise, options: {
readonly id?: string;
readonly validation: REST;
}): Action>>>;
| void | null, VALIDATOR extends TypedDataValidator, REST extends [DataValidator, ...DataValidator[]]>(actionQrl: (data: GetValidatorOutputType, event: RequestEventAction) => ValueOrPromise, options: VALIDATOR, ...rest: REST): Action>> | FailReturn>>, GetValidatorInputType, false>;
| void | null, VALIDATOR extends TypedDataValidator>(actionQrl: (data: GetValidatorOutputType, event: RequestEventAction) => ValueOrPromise, options: VALIDATOR): Action>>>, GetValidatorInputType, false>;
| void | null, REST extends [DataValidator, ...DataValidator[]]>(actionQrl: (form: JSONObject, event: RequestEventAction) => ValueOrPromise, ...rest: REST): Action>>>;
(actionQrl: (form: JSONObject, event: RequestEventAction) => ValueOrPromise, options?: {
readonly id?: string;
}): Action>;
};
/** @public */
declare type ActionConstructorQRL = {
| void | null, VALIDATOR extends TypedDataValidator, REST extends [DataValidator, ...DataValidator[]]>(actionQrl: QRL<(data: GetValidatorOutputType, event: RequestEventAction) => ValueOrPromise>, options: {
readonly id?: string;
readonly validation: [VALIDATOR, ...REST];
}): Action>> | FailReturn>>, GetValidatorInputType, false>;
| void | null, VALIDATOR extends TypedDataValidator>(actionQrl: QRL<(data: GetValidatorOutputType, event: RequestEventAction) => ValueOrPromise>, options: {
readonly id?: string;
readonly validation: [VALIDATOR];
}): Action>>>, GetValidatorInputType, false>;
| void | null, REST extends [DataValidator, ...DataValidator[]]>(actionQrl: QRL<(data: JSONObject, event: RequestEventAction) => ValueOrPromise>, options: {
readonly id?: string;
readonly validation: REST;
}): Action>>>;
| void | null, VALIDATOR extends TypedDataValidator, REST extends [DataValidator, ...DataValidator[]]>(actionQrl: QRL<(data: GetValidatorOutputType, event: RequestEventAction) => ValueOrPromise>, options: VALIDATOR, ...rest: REST): Action>> | FailReturn>>, GetValidatorInputType, false>;
| void | null, VALIDATOR extends TypedDataValidator>(actionQrl: QRL<(data: GetValidatorOutputType, event: RequestEventAction) => ValueOrPromise>, options: VALIDATOR): Action>>>, GetValidatorInputType, false>;
| void | null, REST extends [DataValidator, ...DataValidator[]]>(actionQrl: QRL<(form: JSONObject, event: RequestEventAction) => ValueOrPromise>, ...rest: REST): Action>>>;
(actionQrl: QRL<(form: JSONObject, event: RequestEventAction) => ValueOrPromise>, options?: {
readonly id?: string;
}): Action>;
};
/** @public */
export declare type ActionReturn = {
readonly status?: number;
readonly value: RETURN;
};
/** @public */
export declare type ActionStore = {
/**
* It's the "action" path that a native `
* ```
*
* Most of the time this property should not be used directly, instead use the `Form` component:
*
* ```tsx
* import {action$, Form} from '@builder.io/qwik-city';
*
* export const useAddUser = action$(() => { ... });
*
* export default component$(() => {
* const action = useAddUser();
* return (
*