import { AnyClass, Property } from "@itwin/ecschema-metadata";
import { IModelDb } from "../IModelDb";
/** Reshape a single value from `UseECSqlPropertyNames` to `UseJsPropertyNames`, dispatching on `prop`'s
 * declared type (struct/array/point/navigation) instead of guessing from the value's shape.
 * @internal
 */
export declare function reshapePropertyValue(value: any, prop: Property, iModel: IModelDb): any;
/**
 * Reshapes a `SELECT *` row queried with `UseECSqlPropertyNames` into the legacy `UseJsPropertyNames`
 * shape, for a class only known at runtime. Walks `ecClass`'s metadata to rename each property, since a
 * row's runtime shape alone can't tell a struct/point/navigation value apart from a plain object.
 * @internal
 */
export declare function reshapeInstanceRow(row: {
    [propName: string]: any;
}, ecClass: AnyClass, iModel: IModelDb): {
    [propName: string]: any;
};
/** Resolves the runtime [[AnyClass]] metadata for a "Schema:Class" or "Schema.Class" name.
 * @internal
 */
export declare function getRuntimeClass(iModel: IModelDb, fullClassName: string): AnyClass;
//# sourceMappingURL=ECSqlInstanceReshaper.d.ts.map