import type { AnyOfSchema, AnySchema, BinarySchema, BooleanSchema, ListSchema, MapSchema, NullSchema, NumberSchema, RecordSchema, Schema, SetSchema, StringSchema } from '../../schema/index.js';
export type ResetLinks<SCHEMA extends Schema> = (SCHEMA extends AnySchema ? AnySchema<{
    [KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends NullSchema ? NullSchema<{
    [KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends BooleanSchema ? BooleanSchema<{
    [KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends NumberSchema ? NumberSchema<{
    [KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends StringSchema ? StringSchema<{
    [KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends BinarySchema ? BinarySchema<{
    [KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends SetSchema ? SetSchema<SCHEMA['elements'], {
    [KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends ListSchema ? ListSchema<SCHEMA['elements'], {
    [KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends MapSchema ? MapSchema<SCHEMA['attributes'], {
    [KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends RecordSchema ? RecordSchema<SCHEMA['keys'], SCHEMA['elements'], {
    [KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends AnyOfSchema ? AnyOfSchema<SCHEMA['elements'], {
    [KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never);
type LinksResetter = <SCHEMA extends Schema>(schema: SCHEMA) => ResetLinks<SCHEMA>;
export declare const resetLinks: LinksResetter;
export {};
