/**
 * Renderer Types
 *
 * Common interfaces for the rendering system.
 * Renderers transform structured data into terminal-friendly output.
 */
/**
 * Default render context
 */
export function getDefaultRenderContext() {
    const isTTY = process.stdout.isTTY ?? false;
    return {
        mode: isTTY ? 'fancy' : 'plain',
        color: isTTY && !process.env.NO_COLOR,
        emoji: isTTY && !process.env.NO_EMOJI,
        width: process.stdout.columns || 80,
        height: process.stdout.rows || 24,
        piped: !isTTY,
    };
}
/**
 * Helper to check if data has a specific type field
 */
function hasType(data, type) {
    return typeof data === 'object' && data !== null && 'type' in data && data.type === type;
}
/**
 * Type guard helpers
 */
export function isDiffData(data) {
    return hasType(data, 'diff');
}
export function isTestResultsData(data) {
    return hasType(data, 'test-results');
}
export function isCodeStructureData(data) {
    return hasType(data, 'code-structure');
}
export function isWeatherData(data) {
    return hasType(data, 'weather');
}
export function isTableData(data) {
    return hasType(data, 'table');
}
export function isProgressData(data) {
    return hasType(data, 'progress');
}
export function isTreeData(data) {
    return hasType(data, 'tree');
}
export function isJsonData(data) {
    return hasType(data, 'json');
}
//# sourceMappingURL=types.js.map