import * as Effect from "effect/Effect";
import * as Layer from "effect/Layer";
import * as ServiceMap from "effect/Context";
import * as Stream from "effect/Stream";
import type { TerminalSize } from "./scene.js";
declare const CredentialDeliveryFailed_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
readonly _tag: "CredentialDeliveryFailed";
} & Readonly;
export declare class CredentialDeliveryFailed extends CredentialDeliveryFailed_base<{
readonly cause: unknown;
}> {
}
export interface OutputStreamFacts extends TerminalSize {
readonly stdoutIsTTY: boolean;
readonly stderrIsTTY: boolean;
}
declare const OutputStreams_base: ServiceMap.ServiceClass Effect.Effect;
readonly stderr: (content: string) => Effect.Effect;
/** Write a credential and acknowledge the stream callback before succeeding. */
readonly credential: (content: string) => Effect.Effect;
readonly facts: Effect.Effect;
readonly resize: Stream.Stream;
}>;
export declare class OutputStreams extends OutputStreams_base {
}
export declare const OutputStreamsLive: Layer.Layer;
/** Pre-runtime TTY fact for startup policy without exposing Node streams. */
export declare const stderrIsTTY: () => boolean;
export interface TestOutputStreamsState {
readonly stdout: Array;
readonly stderr: Array;
/** The terminal the streams report. A test narrows it, then offers a resize. */
size: TerminalSize;
}
export declare const makeTestOutputStreams: (options?: {
readonly stdoutIsTTY?: boolean;
readonly stderrIsTTY?: boolean;
readonly columns?: number;
readonly rows?: number;
readonly resize?: Stream.Stream;
}) => {
readonly layer: Layer.Layer;
readonly state: TestOutputStreamsState;
};
export {};
//# sourceMappingURL=streams.d.ts.map