import type { Model, Schema } from 'mongoose';
export interface NestedAliasesMap {
    __selfAlias?: string;
    [userFieldName: string]: string | NestedAliasesMap | undefined;
}
export type AliasesMap = Record<string, string>;
export declare function prepareAliases(model: Model<any>): AliasesMap | false;
export declare function prepareAliasesReverse(schema: Schema<any>): AliasesMap | false;
export declare function replaceAliases(data: Record<string, any>, aliases?: NestedAliasesMap): Record<string, any>;
export declare function prepareNestedAliases(schema: Schema<any>, preparedAliases?: Map<Schema<any, Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, {
    [x: number]: unknown;
    [x: symbol]: unknown;
    [x: string]: unknown;
}, import("mongoose").Document<unknown, {}, {
    [x: number]: unknown;
    [x: symbol]: unknown;
    [x: string]: unknown;
}, {
    id: string;
}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<{
    [x: number]: unknown;
    [x: symbol]: unknown;
    [x: string]: unknown;
} & Required<{
    _id: unknown;
}> & {
    __v: number;
}, "id"> & {
    id: string;
}, {
    [path: string]: import("mongoose").SchemaDefinitionProperty<undefined, any, any>;
} | {
    [x: string]: import("mongoose").SchemaDefinitionProperty<any, any, import("mongoose").Document<unknown, {}, {
        [x: number]: unknown;
        [x: symbol]: unknown;
        [x: string]: unknown;
    }, {
        id: string;
    }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<{
        [x: number]: unknown;
        [x: symbol]: unknown;
        [x: string]: unknown;
    } & Required<{
        _id: unknown;
    }> & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
}, {} & Required<{
    _id: unknown;
}> & {
    __v: number;
}>, NestedAliasesMap | undefined>): NestedAliasesMap | undefined;
//# sourceMappingURL=aliases.d.ts.map