import '../../../../globals.js';
/**
 * Represents a compiled shader and associated data.
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
import { WGSLExpressionU32 } from '../../imports.js';
export type WorkgroupSizable = {
    workgroupSize: number;
};
export type GrainSizable = {
    grainSize: number;
};
export type RakedSizable = WorkgroupSizable & GrainSizable;
export type GlobalIndexable = {
    globalIndex?: WGSLExpressionU32;
};
export declare const GLOBAL_INDEXABLE_DEFAULTS: {
    readonly globalIndex: import("./WGSLString.js").default;
};
export type WorkgroupIndexable = {
    workgroupIndex?: WGSLExpressionU32;
};
export declare const WORKGROUP_INDEXABLE_DEFAULTS: {
    readonly workgroupIndex: import("./WGSLString.js").default;
};
export type LocalIndexable = {
    localIndex?: WGSLExpressionU32;
};
export declare const LOCAL_INDEXABLE_DEFAULTS: {
    readonly localIndex: import("./WGSLString.js").default;
};
export type OptionalLengthExpressionable = {
    lengthExpression?: WGSLExpressionU32 | null;
};
export declare const OPTIONAL_LENGTH_EXPRESSIONABLE_DEFAULTS: {
    readonly lengthExpression: null;
};
export declare const partialWGSLBeautify: (wgsl: string) => string;
export declare const addLineNumbers: (wgsl: string) => string;
/**
 * Strips comments from a WGSL string (in an opinionated way, to potentially leave some in for help with debugging).
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
export declare const stripWGSLComments: (str: string, allComments?: boolean) => string;
//# sourceMappingURL=WGSLUtils.d.ts.map