import { z } from "zod";
import { type RecordCodec } from "./envelope.js";
export declare const viewportSchema: z.ZodObject<{
    width: z.ZodNumber;
    height: z.ZodNumber;
    deviceScaleFactor: z.ZodNumber;
}, z.core.$strict>;
export declare const actionStepSchema: z.ZodObject<{
    id: z.ZodString;
    kind: z.ZodString;
    target: z.ZodOptional<z.ZodString>;
    params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, z.core.$strict>;
export declare const networkExpectationSchema: z.ZodObject<{
    method: z.ZodString;
    urlPattern: z.ZodString;
    status: z.ZodOptional<z.ZodNumber>;
}, z.core.$strict>;
export declare const matrixCellRefSchema: z.ZodObject<{
    id: z.ZodString;
    routeId: z.ZodOptional<z.ZodString>;
    url: z.ZodOptional<z.ZodString>;
    role: z.ZodOptional<z.ZodString>;
    locale: z.ZodOptional<z.ZodString>;
    viewport: z.ZodOptional<z.ZodObject<{
        width: z.ZodNumber;
        height: z.ZodNumber;
        deviceScaleFactor: z.ZodNumber;
    }, z.core.$strict>>;
}, z.core.$strict>;
export declare const actionRefSchema: z.ZodObject<{
    id: z.ZodString;
}, z.core.$strict>;
export declare const journeyRefSchema: z.ZodObject<{
    id: z.ZodString;
}, z.core.$strict>;
export declare const MATRIX_CELL_V1_VERSION: "matrix-cell/v1";
export declare const MATRIX_CELL_VERSION: "matrix-cell/v2";
declare const matrixCellBaseSchema: z.ZodObject<{
    schemaVersion: z.ZodString;
    id: z.ZodString;
    creationSource: z.ZodObject<{
        runId: z.ZodString;
        component: z.ZodEnum<{
            orchestrator: "orchestrator";
            detector: "detector";
            classifier: "classifier";
            store: "store";
            migration: "migration";
            import: "import";
            manual: "manual";
        }>;
        componentId: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
    routeId: z.ZodString;
    route: z.ZodOptional<z.ZodString>;
    url: z.ZodString;
    role: z.ZodString;
    locale: z.ZodString;
    viewport: z.ZodObject<{
        width: z.ZodNumber;
        height: z.ZodNumber;
        deviceScaleFactor: z.ZodNumber;
    }, z.core.$strict>;
    state: z.ZodRecord<z.ZodString, z.ZodString>;
    actions: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        kind: z.ZodString;
        target: z.ZodOptional<z.ZodString>;
        params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, z.core.$strict>>;
    seed: z.ZodString;
    expectedNetwork: z.ZodOptional<z.ZodArray<z.ZodObject<{
        method: z.ZodString;
        urlPattern: z.ZodString;
        status: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>>;
}, z.core.$strict>;
export declare const matrixCellSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    id: z.ZodString;
    creationSource: z.ZodObject<{
        runId: z.ZodString;
        component: z.ZodEnum<{
            orchestrator: "orchestrator";
            detector: "detector";
            classifier: "classifier";
            store: "store";
            migration: "migration";
            import: "import";
            manual: "manual";
        }>;
        componentId: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
    routeId: z.ZodString;
    route: z.ZodOptional<z.ZodString>;
    url: z.ZodString;
    role: z.ZodString;
    locale: z.ZodString;
    viewport: z.ZodObject<{
        width: z.ZodNumber;
        height: z.ZodNumber;
        deviceScaleFactor: z.ZodNumber;
    }, z.core.$strict>;
    state: z.ZodRecord<z.ZodString, z.ZodString>;
    actions: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        kind: z.ZodString;
        target: z.ZodOptional<z.ZodString>;
        params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, z.core.$strict>>;
    seed: z.ZodString;
    expectedNetwork: z.ZodOptional<z.ZodArray<z.ZodObject<{
        method: z.ZodString;
        urlPattern: z.ZodString;
        status: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>>;
    schemaVersion: z.ZodLiteral<"matrix-cell/v1">;
}, z.core.$strict>, z.ZodObject<{
    id: z.ZodString;
    creationSource: z.ZodObject<{
        runId: z.ZodString;
        component: z.ZodEnum<{
            orchestrator: "orchestrator";
            detector: "detector";
            classifier: "classifier";
            store: "store";
            migration: "migration";
            import: "import";
            manual: "manual";
        }>;
        componentId: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>;
    routeId: z.ZodString;
    route: z.ZodOptional<z.ZodString>;
    url: z.ZodString;
    role: z.ZodString;
    locale: z.ZodString;
    viewport: z.ZodObject<{
        width: z.ZodNumber;
        height: z.ZodNumber;
        deviceScaleFactor: z.ZodNumber;
    }, z.core.$strict>;
    state: z.ZodRecord<z.ZodString, z.ZodString>;
    actions: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        kind: z.ZodString;
        target: z.ZodOptional<z.ZodString>;
        params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    }, z.core.$strict>>;
    seed: z.ZodString;
    expectedNetwork: z.ZodOptional<z.ZodArray<z.ZodObject<{
        method: z.ZodString;
        urlPattern: z.ZodString;
        status: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strict>>>;
    schemaVersion: z.ZodLiteral<"matrix-cell/v2">;
    journeys: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
    }, z.core.$strict>>;
}, z.core.$strict>], "schemaVersion">;
export type JourneyRef = z.infer<typeof journeyRefSchema>;
export type MatrixCell = Omit<z.infer<typeof matrixCellBaseSchema>, "schemaVersion"> & {
    schemaVersion: typeof MATRIX_CELL_V1_VERSION | typeof MATRIX_CELL_VERSION;
    journeys?: JourneyRef[] | undefined;
};
export declare function matrixCellRef(cell: MatrixCell): MatrixCellRef;
export declare const matrixCellCodec: RecordCodec<MatrixCell>;
declare const nonBrowserContextKindSchema: z.ZodEnum<{
    api: "api";
    cli: "cli";
    worker: "worker";
    stream: "stream";
    filesystem: "filesystem";
    package: "package";
    deployment: "deployment";
}>;
export type MatrixCellRef = z.infer<typeof matrixCellRefSchema>;
export type ActionRef = z.infer<typeof actionRefSchema>;
export type NonBrowserExecutionContextKind = z.infer<typeof nonBrowserContextKindSchema>;
export type BrowserExecutionContext = {
    kind: "browser";
    cell: MatrixCellRef;
};
export type NonBrowserExecutionContextBase = {
    surfaceId: string;
    adapterId: string;
    environment: Record<string, string>;
    action?: ActionRef | undefined;
    seed: string;
};
export type ApiExecutionContext = NonBrowserExecutionContextBase & {
    kind: "api";
};
export type CliExecutionContext = NonBrowserExecutionContextBase & {
    kind: "cli";
};
export type WorkerExecutionContext = NonBrowserExecutionContextBase & {
    kind: "worker";
};
export type StreamExecutionContext = NonBrowserExecutionContextBase & {
    kind: "stream";
};
export type FilesystemExecutionContext = NonBrowserExecutionContextBase & {
    kind: "filesystem";
};
export type PackageExecutionContext = NonBrowserExecutionContextBase & {
    kind: "package";
};
export type DeploymentExecutionContext = NonBrowserExecutionContextBase & {
    kind: "deployment";
};
export type NonBrowserExecutionContext = ApiExecutionContext | CliExecutionContext | WorkerExecutionContext | StreamExecutionContext | FilesystemExecutionContext | PackageExecutionContext | DeploymentExecutionContext;
export type ExecutionContext = BrowserExecutionContext | NonBrowserExecutionContext;
export declare const executionContextSchema: z.ZodType<ExecutionContext>;
export {};
//# sourceMappingURL=context.d.ts.map