UNPKG

@opentui/core

Version:

OpenTUI is a TypeScript library on a native Zig core for building terminal user interfaces (TUIs)

328 lines (327 loc) 16.6 kB
import { type Pointer } from "./platform/ffi.js"; import { RGBA } from "./lib/RGBA.js"; type StyledChunkInput = { text: string; fg?: RGBA | null; bg?: RGBA | null; attributes?: number | null; link?: { url: string; } | string | null; }; export declare const StyledChunkStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["text", "char*"], readonly ["text_len", "u64", { readonly lengthOf: "text"; }], readonly ["fg", "pointer", { readonly optional: true; readonly packTransform: (rgba?: RGBA) => Uint16Array<ArrayBufferLike> | null; readonly unpackTransform: (ptr?: Pointer) => RGBA | undefined; }], readonly ["bg", "pointer", { readonly optional: true; readonly packTransform: (rgba?: RGBA) => Uint16Array<ArrayBufferLike> | null; readonly unpackTransform: (ptr?: Pointer) => RGBA | undefined; }], readonly ["attributes", "u32", { readonly default: 0; }], readonly ["link", "char*", { readonly default: ""; }], readonly ["link_len", "u64", { readonly lengthOf: "link"; }]], { readonly mapValue: (chunk: StyledChunkInput) => StyledChunkInput; }>; export declare const HighlightStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["start", "u32"], readonly ["end", "u32"], readonly ["styleId", "u32"], readonly ["priority", "u8", { readonly default: 0; }], readonly ["hlRef", "u16", { readonly default: 0; }]], {}>; export declare const LogicalCursorStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["row", "u32"], readonly ["col", "u32"], readonly ["offset", "u32"]], {}>; export declare const VisualCursorStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["visualRow", "u32"], readonly ["visualCol", "u32"], readonly ["logicalRow", "u32"], readonly ["logicalCol", "u32"], readonly ["offset", "u32"]], {}>; export declare const TerminalCapabilitiesStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["kitty_keyboard", "bool_u8"], readonly ["kitty_graphics", "bool_u8"], readonly ["rgb", "bool_u8"], readonly ["ansi256", "bool_u8"], readonly ["unicode", import("bun-ffi-structs").EnumDef<{ wcwidth: number; unicode: number; "unicode-wide": number; }>], readonly ["sgr_pixels", "bool_u8"], readonly ["color_scheme_updates", "bool_u8"], readonly ["explicit_width", "bool_u8"], readonly ["scaled_text", "bool_u8"], readonly ["sixel", "bool_u8"], readonly ["focus_tracking", "bool_u8"], readonly ["sync", "bool_u8"], readonly ["bracketed_paste", "bool_u8"], readonly ["hyperlinks", "bool_u8"], readonly ["osc52", "bool_u8"], readonly ["notifications", "bool_u8"], readonly ["explicit_cursor_positioning", "bool_u8"], readonly ["remote", "bool_u8"], readonly ["multiplexer", import("bun-ffi-structs").EnumDef<{ none: number; tmux: number; zellij: number; screen: number; unknown: number; }>], readonly ["image_protocol", import("bun-ffi-structs").EnumDef<{ auto: number; kitty: number; sixel: number; blocks: number; }>], readonly ["term_name", "char*"], readonly ["term_name_len", "u64", { readonly lengthOf: "term_name"; }], readonly ["term_version", "char*"], readonly ["term_version_len", "u64", { readonly lengthOf: "term_version"; }], readonly ["term_from_xtversion", "bool_u8"], readonly ["osc52_support", import("bun-ffi-structs").EnumDef<{ unknown: number; supported: number; unsupported: number; }>]], {}>; export declare const EncodedCharStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["width", "u8"], readonly ["char", "u32"]], {}>; export interface NativeImageInfo { width: number; height: number; sourceWidth: number; sourceHeight: number; format: number; colorStatus: number; orientation: number; hasAlpha: number; } export declare const NativeImageInfoStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["width", "u32"], readonly ["height", "u32"], readonly ["sourceWidth", "u32"], readonly ["sourceHeight", "u32"], readonly ["format", "u32"], readonly ["colorStatus", "u32"], readonly ["orientation", "u32"], readonly ["hasAlpha", "u32"]], {}>; export declare const ImageDrawOptionsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["x", "i32"], readonly ["y", "i32"], readonly ["width", "u32"], readonly ["height", "u32"], readonly ["pixelWidth", "u32"], readonly ["pixelHeight", "u32"], readonly ["sourceX", "u32"], readonly ["sourceY", "u32"], readonly ["sourceWidth", "u32"], readonly ["sourceHeight", "u32"], readonly ["protocol", "u32"]], {}>; export declare const LineInfoStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["startCols", readonly ["u32"]], readonly ["startColsLen", "u32", { readonly lengthOf: "startCols"; }], readonly ["widthCols", readonly ["u32"]], readonly ["widthColsLen", "u32", { readonly lengthOf: "widthCols"; }], readonly ["sources", readonly ["u32"]], readonly ["sourcesLen", "u32", { readonly lengthOf: "sources"; }], readonly ["wraps", readonly ["u32"]], readonly ["wrapsLen", "u32", { readonly lengthOf: "wraps"; }], readonly ["widthColsMax", "u32"]], {}>; export declare const MeasureResultStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["lineCount", "u32"], readonly ["widthColsMax", "u32"]], {}>; export declare const CursorStateStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["x", "u32"], readonly ["y", "u32"], readonly ["visible", "bool_u8"], readonly ["style", "u8"], readonly ["blinking", "bool_u8"], readonly ["r", "f32"], readonly ["g", "f32"], readonly ["b", "f32"], readonly ["a", "f32"]], {}>; export declare const EmbeddedTerminalCursorStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["x", "u16"], readonly ["y", "u16"], readonly ["hasValue", "bool_u8"], readonly ["visible", "bool_u8"], readonly ["blinking", "bool_u8"], readonly ["wideTail", "bool_u8"], readonly ["style", "u8"], readonly ["colorHasValue", "bool_u8"], readonly ["colorR", "u8"], readonly ["colorG", "u8"], readonly ["colorB", "u8"], readonly ["padding", "u8"]], {}>; export declare const EmbeddedTerminalKeyOptionsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["action", "u8"], readonly ["composing", "u8"], readonly ["mods", "u16"], readonly ["consumedMods", "u16"], readonly ["padding", "u16"], readonly ["unshiftedCodepoint", "u32"]], {}>; export declare const CursorStyleOptionsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["style", "u8", { readonly default: 255; }], readonly ["blinking", "u8", { readonly default: 255; }], readonly ["color", "pointer", { readonly optional: true; readonly packTransform: (rgba?: RGBA) => Uint16Array<ArrayBufferLike> | null; readonly unpackTransform: (ptr?: Pointer) => RGBA | undefined; }], readonly ["cursor", "u8", { readonly default: 255; }]], {}>; export declare const GridDrawOptionsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["drawInner", "bool_u8", { readonly default: true; }], readonly ["drawOuter", "bool_u8", { readonly default: true; }]], {}>; export type BuildOptions = { gpaSafeStats: boolean; gpaMemoryLimitTracking: boolean; }; export declare const BuildOptionsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["gpaSafeStats", "bool_u8"], readonly ["gpaMemoryLimitTracking", "bool_u8"]], {}>; export type AllocatorStats = { totalRequestedBytes: number; activeAllocations: number; smallAllocations: number; largeAllocations: number; requestedBytesValid: boolean; }; export declare const AllocatorStatsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["totalRequestedBytes", "u64"], readonly ["activeAllocations", "u64"], readonly ["smallAllocations", "u64"], readonly ["largeAllocations", "u64"], readonly ["requestedBytesValid", "bool_u8"]], {}>; export type NativeRenderStats = { nativeLastFrameTime: number; nativeAverageFrameTime: number; nativeFrameCount: number; cellsUpdated: number; averageCellsUpdated: number; nativeRenderTime?: number; nativeStdoutWriteTime?: number; }; export declare const NativeRenderStatsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["lastFrameTime", "f64"], readonly ["averageFrameTime", "f64"], readonly ["renderTime", "f64"], readonly ["stdoutWriteTime", "f64"], readonly ["frameCount", "u64"], readonly ["cellsUpdated", "u32"], readonly ["averageCellsUpdated", "u32"], readonly ["renderTimeValid", "bool_u8"], readonly ["stdoutWriteTimeValid", "bool_u8"]], {}>; export type GrowthPolicy = "grow" | "block"; export type NativeSpanFeedOptions = { chunkSize?: number; initialChunks?: number; maxBytes?: bigint; growthPolicy?: GrowthPolicy; autoCommitOnFull?: boolean; spanQueueCapacity?: number; }; export type NativeSpanFeedStats = { bytesWritten: bigint; spansCommitted: bigint; chunks: number; pendingSpans: number; }; export type SpanInfo = { chunkPtr: Pointer; offset: number; len: number; chunkIndex: number; }; export type ReserveInfo = { ptr: Pointer; len: number; }; export declare const NativeSpanFeedOptionsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["chunkSize", "u32", { readonly default: number; }], readonly ["initialChunks", "u32", { readonly default: 2; }], readonly ["maxBytes", "u64", { readonly default: 0n; }], readonly ["growthPolicy", import("bun-ffi-structs").EnumDef<{ grow: number; block: number; }>, { readonly default: "grow"; }], readonly ["autoCommitOnFull", "bool_u8", { readonly default: true; }], readonly ["spanQueueCapacity", "u32", { readonly default: 0; }]], {}>; export declare const NativeSpanFeedStatsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["bytesWritten", "u64"], readonly ["spansCommitted", "u64"], readonly ["chunks", "u32"], readonly ["pendingSpans", "u32"]], {}>; export declare const SpanInfoStruct: import("bun-ffi-structs").StructDef<{ chunkPtr: Pointer; offset: number; len: number; chunkIndex: number; }, { offset: number; chunkPtr: ArrayBufferLike | import("bun-ffi-structs").Pointer | ArrayBufferView<ArrayBufferLike>; len: number; chunkIndex: number; reserved?: number | null | undefined; }>; export declare const ReserveInfoStruct: import("bun-ffi-structs").StructDef<{ ptr: Pointer; len: number; }, { len: number; ptr: ArrayBufferLike | import("bun-ffi-structs").Pointer | ArrayBufferView<ArrayBufferLike>; reserved?: number | null | undefined; }>; export type AudioCreateOptions = { sampleRate?: number; playbackChannels?: number; }; export type AudioStartOptions = { periodSizeInFrames?: number; periodSizeInMilliseconds?: number; periods?: number; performanceProfile?: number; shareMode?: number; noPreSilencedOutputBuffer?: boolean; noClip?: boolean; noDisableDenormals?: boolean; noFixedSizedCallback?: boolean; wasapiNoAutoConvertSrc?: boolean; wasapiNoDefaultQualitySrc?: boolean; alsaNoMMap?: boolean; alsaNoAutoFormat?: boolean; alsaNoAutoChannels?: boolean; alsaNoAutoResample?: boolean; }; export type AudioVoiceOptions = { volume?: number; pan?: number; loop?: boolean; groupId?: number; }; export declare const NativeAudioStreamFormat: { readonly Mp3: 1; readonly Flac: 2; }; export type NativeAudioStreamFormat = (typeof NativeAudioStreamFormat)[keyof typeof NativeAudioStreamFormat]; export type AudioStreamCreateOptions = { capacityMs: number; startupMs: number; resumeMs: number; volume: number; pan: number; groupId: number; maxProbeBytes: number; format: NativeAudioStreamFormat; }; export type NativeAudioStreamStats = { bytesReceived: bigint; framesDecoded: bigint; framesPlayed: bigint; state: number; sampleRate: number; channels: number; bufferedFrames: number; capacityFrames: number; underruns: number; errorCode: number; readyGeneration: number; }; export declare const NativeAudioStreamState: { readonly Initializing: 0; readonly Buffering: 1; readonly Playing: 2; readonly Ended: 3; readonly Failed: 4; readonly Cancelled: 5; readonly Reconnecting: 6; }; export type NativeAudioStreamState = (typeof NativeAudioStreamState)[keyof typeof NativeAudioStreamState]; export declare const NativeAudioStreamStateNames: readonly ["initializing", "buffering", "playing", "ended", "errored", "disposed", "reconnecting"]; export declare const NativeAudioStreamCloseReason: { readonly PreserveNativeTerminal: 0; readonly TransportError: 1; readonly Disposed: 2; }; export type NativeAudioStreamCloseReason = (typeof NativeAudioStreamCloseReason)[keyof typeof NativeAudioStreamCloseReason]; export type AudioStats = { soundsLoaded: number; voicesActive: number; framesMixed: bigint; lockMisses: number; lastPeak: number; lastRms: number; }; export type NativeAudioCaptureStats = { framesReceived: bigint; framesRead: bigint; framesDropped: bigint; sampleRate: number; channels: number; bufferedFrames: number; capacityFrames: number; }; export declare const AudioCreateOptionsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["sampleRate", "u32", { readonly default: 48000; }], readonly ["playbackChannels", "u32", { readonly default: 2; }]], {}>; export declare const AudioStartOptionsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["periodSizeInFrames", "u32", { readonly default: 0; }], readonly ["periodSizeInMilliseconds", "u32", { readonly default: 0; }], readonly ["periods", "u32", { readonly default: 0; }], readonly ["performanceProfile", "u8", { readonly default: 0; }], readonly ["shareMode", "u8", { readonly default: 0; }], readonly ["noPreSilencedOutputBuffer", "bool_u8", { readonly default: false; }], readonly ["noClip", "bool_u8", { readonly default: false; }], readonly ["noDisableDenormals", "bool_u8", { readonly default: false; }], readonly ["noFixedSizedCallback", "bool_u8", { readonly default: false; }], readonly ["wasapiNoAutoConvertSrc", "bool_u8", { readonly default: false; }], readonly ["wasapiNoDefaultQualitySrc", "bool_u8", { readonly default: false; }], readonly ["alsaNoMMap", "bool_u8", { readonly default: false; }], readonly ["alsaNoAutoFormat", "bool_u8", { readonly default: false; }], readonly ["alsaNoAutoChannels", "bool_u8", { readonly default: false; }], readonly ["alsaNoAutoResample", "bool_u8", { readonly default: false; }]], {}>; export declare const AudioVoiceOptionsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["volume", "f32", { readonly default: 1; }], readonly ["pan", "f32", { readonly default: 0; }], readonly ["loop", "bool_u8", { readonly default: false; }], readonly ["groupId", "u32", { readonly default: 0; }]], {}>; export declare const AudioStreamCreateOptionsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["capacityMs", "u32"], readonly ["startupMs", "u32"], readonly ["resumeMs", "u32"], readonly ["volume", "f32"], readonly ["pan", "f32"], readonly ["groupId", "u32"], readonly ["maxProbeBytes", "u32"], readonly ["format", "u32"]], {}>; export declare const AudioStreamStatsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["bytesReceived", "u64"], readonly ["framesDecoded", "u64"], readonly ["framesPlayed", "u64"], readonly ["state", "u32"], readonly ["sampleRate", "u32"], readonly ["channels", "u32"], readonly ["bufferedFrames", "u32"], readonly ["capacityFrames", "u32"], readonly ["underruns", "u32"], readonly ["errorCode", "i32"], readonly ["readyGeneration", "u32"]], {}>; export declare const AudioCaptureStatsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["framesReceived", "u64"], readonly ["framesRead", "u64"], readonly ["framesDropped", "u64"], readonly ["sampleRate", "u32"], readonly ["channels", "u32"], readonly ["bufferedFrames", "u32"], readonly ["capacityFrames", "u32"]], {}>; export declare const AudioStatsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["soundsLoaded", "u32"], readonly ["voicesActive", "u32"], readonly ["framesMixed", "u64"], readonly ["lockMisses", "u32"], readonly ["lastPeak", "f32"], readonly ["lastRms", "f32"]], {}>; export {};