import { Attributes, Terminal, Buffer, ScreenBuffer, TextBuffer } from 'terminal-kit'; import { Panel, ScreenPanel, TextPanel } from './panel'; import { LogRecord, LogIdx, PropertyId, ResultSet, FilterMatch } from './logdb'; export type FormatCondition = (value: any, property: string, record: LogRecord) => boolean; export interface LogSubstitution { property: string; attributes?: Attributes; conditionalAttributes?: Array<{ condition: FormatCondition; attributes: Attributes; }>; prefix?: string; suffix?: string; showNull?: boolean; } export interface FormatString { text: string; attributes?: Attributes; conditionalAttributes?: Array<{ condition: FormatCondition; attributes: Attributes; }>; } export interface LogFormat { format: Array; attributes?: Attributes; conditionalAttributes?: Array<{ condition: FormatCondition; attributes: Attributes; }>; } export declare class LogDisplayPanel extends Panel { logPanel: ScreenPanel; idxPanel: TextPanel; logs: LogRecord[]; resultSet?: ResultSet; logLevelColors: { [level: string]: string; }; logFormat: LogFormat; logEntryCache: Map; maxLogEntries: number; scrollLogIndex: number; scrollPosition: number; horizontalScrollPosition: number; horizontalScrollMax: number; expandedLogs: Set; highlightedLogs: Map; selectionIndex: number; selectionScrollPosition: number; constructor(dst: Buffer | Terminal, options: Panel.Options, logDisplayOptions?: Partial); resize(): void; render: () => void; getScreenBuffer(): ScreenBuffer; setLogFormat(logFormat: LogFormat): void; createLogEntry(record: LogRecord): TextBuffer; getLogEntry(record: LogRecord): TextBuffer; printLogEntry(logEntry: TextBuffer, row: number, scrollPosition: number, horizontalScrollPosition: number): void; scrollAlignBottom(): void; scrollToLogFromBottom(index: number): void; scrollToLog(index: number): void; scrollUp(count: number): void; scrollDown(count: number): void; getBottomPosition(): { entryIndex: number; scrollPosition: number; } | undefined; scrollToSelection(): void; getSelectionRow(): number; scrollSelectionToRow(row: number): void; selectLog(index: number): void; selectLogIdx(idx: LogIdx): void; moveSelectionUp(count: number): void; moveSelectionDown(count: number): void; scrollLeft(count: number): void; scrollRight(count: number): void; toggleExpandSelection(): boolean; scrollToMaximizeLog(entryIndex: number): void; printIdx(idx: LogIdx, row: number): void; static evaluateConditionalAttributes(baseAttributes: Attributes | undefined, conditionalAttributes: Array<{ condition: FormatCondition; attributes: Attributes; }> | undefined, property: string, value: any, record: LogRecord): Attributes; static printLog(record: LogRecord, printOptions: LogDisplayPanel.PrintOptions): number; static getValueHighlightIndexesFilterMatch(filterMatch: FilterMatch, property: PropertyId): number[]; static getValueHighlightIndexes(logIdx: LogIdx, property: PropertyId, matches?: ResultSet.MatchMap): number[]; static printJson(record: LogRecord, obj: any, printOptions: LogDisplayPanel.PrintOptions, propertyPath?: Array): number; static printHighlightedText(str: string, dst: TextBuffer, highlightIndexes: number[], attr: Attributes, highlightAttr: Attributes): void; } export declare namespace LogDisplayPanel { interface Options { idxWidth: number; logLevelColors: { [level: string]: string; }; } interface PrintOptions { dst: TextBuffer; matches?: ResultSet.MatchMap; format: LogFormat; expandedView: boolean; indentStr: string; } } //# sourceMappingURL=logdisplaypanel.d.ts.map