import * as d from '../data/index.ts';
type SerializedDataAttrib = {
    type: 'align';
    value: number;
} | {
    type: 'size';
    value: number;
} | {
    type: 'location';
    value: number;
} | {
    type: 'interpolate';
    value: string;
} | {
    type: 'builtin';
    value: string;
} | {
    type: 'invariant';
};
export type SerializedDataSchema = {
    type: 'd';
    key: string;
} | {
    type: 'array';
    element: SerializedDataSchema;
    count: number;
} | {
    type: 'disarray';
    element: SerializedDataSchema;
    count: number;
} | {
    type: 'struct';
    props: [string, SerializedDataSchema][];
} | {
    type: 'unstruct';
    props: [string, SerializedDataSchema][];
} | {
    type: 'atomic';
    inner: SerializedDataSchema;
} | {
    type: 'decorated';
    inner: SerializedDataSchema;
    attribs: SerializedDataAttrib[];
} | {
    type: 'sampled-texture';
    kind: d.WgslTexture['type'];
    sampleType: SerializedDataSchema;
} | {
    type: 'storage-texture';
    kind: d.WgslStorageTexture['type'];
    format: d.WgslStorageTexture['format'];
    access: d.WgslStorageTexture['access'];
} | {
    type: 'external-texture';
};
export declare function serializeDataSchema(schema: d.BaseData): SerializedDataSchema;
export declare function deserializeDataSchema(schema: SerializedDataSchema): d.AnyData;
export {};
