import { type DeploymentFinalizedEvent } from "@trigger.dev/core/v3/schemas";
import { z } from "zod";
export declare const BuildLogsMode: z.ZodEnum<["compact", "full"]>;
export type BuildLogsMode = z.infer<typeof BuildLogsMode>;
export declare function resolveBuildLogsMode(requested: BuildLogsMode, env: {
    plain: boolean;
    ci: boolean;
    tty: boolean;
    windows: boolean;
}): BuildLogsMode;
type BuildLogLevel = "debug" | "info" | "warn" | "error";
export type BuildLogEntry = {
    timestamp: Date;
    level: BuildLogLevel;
    message: string;
};
type BuildLogOutcome = "success" | "failure" | "abandoned";
export type BuildLogRenderer = {
    readonly started: boolean;
    log(entry: BuildLogEntry): void;
    finish(message: string, outcome: BuildLogOutcome): void;
};
type SpinnerLike = {
    start(msg?: string): void;
    message(msg?: string): void;
    stop(msg?: string, code?: number): void;
};
export type BuildLogRendererOptions = {
    mode: BuildLogsMode;
    title: string;
    tailSize?: number;
    columns?: number;
    spinner?: SpinnerLike;
    print?: (line: string) => void;
    success?: (message: string) => void;
};
export declare function createBuildLogRenderer(options: BuildLogRendererOptions): BuildLogRenderer;
export type DeploymentEventRecord = {
    seqNum: number;
    timestamp: number | string | Date;
    body: string;
};
export declare function streamDeploymentEvents(records: AsyncIterable<DeploymentEventRecord>, renderer: BuildLogRenderer, onFinalized: () => void): Promise<DeploymentFinalizedEvent["data"] | undefined>;
export {};
