import type { HandlerConfiguration } from '../context.js';
import type { HttpHandlerConfiguration } from '../http.js';
import type { TimerHandlerConfiguration } from '../timer.js';
type CPU = 'arm' | 'arm64' | 'ia32' | 'mips' | 'mipsel' | 'ppc' | 'ppc64' | 's390' | 's390x' | 'x32' | 'x64';
type CpuConfig = CPU | `!${CPU}`;
type OSConfig = NodeJS.Platform | `!${NodeJS.Platform}`;
export type PackageJsonConfiguration = {
    nodeVersion?: string;
    cpus?: CpuConfig[];
    os?: OSConfig[];
};
export type Reflection = {
    name: string;
    revision: string | undefined;
    http: {
        name: string;
        method: 'GET' | 'PUT' | 'POST' | 'PATCH' | 'DELETE';
        pathPattern: string;
        config: HttpHandlerConfiguration & PackageJsonConfiguration;
    }[];
    timers: {
        name: string;
        schedule: string;
        config: TimerHandlerConfiguration & PackageJsonConfiguration;
    }[];
    events: {
        name: string;
        topic: string;
        type: string;
        config: HandlerConfiguration & PackageJsonConfiguration;
    }[];
};
export declare function resolveCpu(config: PackageJsonConfiguration, supported: CPU[]): CPU;
export declare function resolveOS(config: PackageJsonConfiguration, supported: NodeJS.Platform[]): NodeJS.Platform;
export declare function reflect(path: string): Promise<Reflection>;
export {};
