import { type ResolutionCtx } from '../types.ts';
import type { Snippet } from './snippet.ts';
import type { BaseData } from './wgslTypes.ts';
/**
 * A wrapper for `schema(item)` or `schema()` call on JS side.
 * If the schema is a pointer, returns the value pointed to without copying.
 * If the schema is a TgpuVertexFormatData, calls the corresponding constructible schema instead.
 * If the schema is not callable, throws an error.
 * Otherwise, returns `schema(item)` or `schema()`.
 */
export declare function schemaCallWrapper<T>(schema: BaseData, item?: T): T;
/**
 * A wrapper for `schema(item)` or `schema()` call on the GPU side.
 * If the schema is a pointer, returns the value pointed to without copying.
 * If the schema is a TgpuVertexFormatData, calls the corresponding constructible schema instead.
 * If the schema is not callable, throws an error.
 * Otherwise, returns `schema(item)` or `schema()`.
 */
export declare function schemaCallWrapperGPU(ctx: ResolutionCtx, schema: BaseData, item?: Snippet): Snippet;
