/**
 * @athenna/database
 *
 * (c) João Lenon <lenon@athenna.io>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
import 'reflect-metadata';
import type { BaseModel } from '#src/models/BaseModel';
import type { HasOneThroughOptions } from '#src/types/relations/HasOneThroughOptions';
/**
 * Create has one through relation for model class.
 */
export declare function HasOneThrough<T extends BaseModel = any, R extends BaseModel = any, H extends BaseModel = any>(model: (() => new () => R) | string, through: (() => new () => H) | string, options?: Omit<HasOneThroughOptions<T, R, H>, 'type' | 'model' | 'through' | 'property'>): (target: T, key: any) => void;
