import type { TgpuRoot } from '../../core/root/rootTypes.ts';
import { type Snippet } from '../../data/snippet.ts';
import type { ResolutionCtx } from '../../internal.ts';
import { type LogGenerator, type LogResources, type SupportedLogOp } from './types.ts';
export declare class LogGeneratorNullImpl implements LogGenerator {
    get logResources(): undefined;
    generateLog(): Snippet;
}
export declare class LogGeneratorImpl implements LogGenerator {
    #private;
    constructor(root: TgpuRoot);
    /**
     * Generates all necessary resources for serializing arguments for logging purposes.
     *
     * @param ctx Resolution context.
     * @param args Argument snippets. Snippets of UnknownType will be treated as string literals.
     * @returns A snippet containing the call to the logging function.
     */
    generateLog(ctx: ResolutionCtx, op: SupportedLogOp, args: Snippet[]): Snippet;
    get logResources(): LogResources | undefined;
}
