import { FutureContainer } from '../models/future/future-types';
import { FutureResponse } from '../services';
export interface FutureProps {
    alias?: string;
    namespace?: string;
    /**
     * Enable automatic AbortController integration
     * When true, the decorator will inject an AbortSignal as the last parameter
     * and set up bi-directional cancellation between Future and HTTP requests
     * @default true
     */
    abortController?: boolean;
    /**
     * Tracker injection policy
     * - 'id': Inject tracker ID as last string parameter (default, preserves existing behavior)
     * - 'context': Inject tracker ID into execution context object as $tracker property
     * @default 'id'
     */
    trackerPolicy?: "id" | "context";
}
/**
 * Wrap an async function with Future lifecycle management.
 *
 * This is the core wrapper logic shared by the `@kosFuture` decorator
 * and the declarative model factory. It handles:
 * - Tracker ID generation and injection
 * - Future placeholder creation and readiness waiting
 * - AbortController integration (bi-directional cancellation)
 * - Future model mapping from the service response
 *
 * @param original - The raw async function to wrap.
 * @param methodName - Name of the method (used for logging).
 * @param props - Future configuration properties.
 * @returns A wrapped handler function suitable for the FutureService Symbol.
 */
export declare function wrapWithFutureLifecycle(original: (...args: any[]) => Promise<any>, methodName: string, props?: FutureProps): (this: FutureContainer, ...args: Array<unknown>) => Promise<FutureResponse | undefined>;
export declare function kosFuture(props?: FutureProps): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
//# sourceMappingURL=future-service.d.ts.map