import '../../../../../assert/js/assert.js';
import '../../../../../globals.js';
/**
 * Specialized logging TODO doc, TODO factor out common parts
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
import { logWGSLOptions, RakedSizable, WGSLExpression, WGSLExpressionU32, WGSLStatements } from '../../../imports.js';
import StrictOmit from '../../../../../phet-core/js/types/StrictOmit.js';
import PickRequired from '../../../../../phet-core/js/types/PickRequired.js';
type SelfOptions = {
    lengthExpression?: WGSLExpressionU32 | null;
    relativeLengthExpression?: WGSLExpressionU32 | null;
    skipBarriers?: boolean;
    accessExpression?: ((index: WGSLExpressionU32) => WGSLExpression) | null;
    relativeAccessExpression?: ((index: WGSLExpressionU32) => WGSLExpression) | null;
} & RakedSizable;
export type logRakedWGSLOptions<T> = SelfOptions & StrictOmit<logWGSLOptions<T>, 'dataCount' | 'writeData'> & PickRequired<logWGSLOptions<T>, 'type'>;
export declare const LOG_RAKED_OPTIONS: {
    readonly lengthExpression: null;
    readonly relativeLengthExpression: null;
    readonly skipBarriers: false;
    readonly accessExpression: null;
    readonly relativeAccessExpression: null;
};
declare const logRakedWGSL: <T>(providedOptions: logRakedWGSLOptions<T>) => WGSLStatements;
export default logRakedWGSL;
//# sourceMappingURL=logRakedWGSL.d.ts.map