/**
 * @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 type { RelationOptions, ColumnOptions, HasOneOptions, HasManyOptions, HasOneThroughOptions, HasManyThroughOptions, BelongsToOptions, BelongsToManyOptions } from '#src/types';
export declare class Annotation {
    static getColumnsMeta(target: any): ColumnOptions[];
    static defineColumnMeta(target: any, options: ColumnOptions): void;
    static getRelationsMeta(target: any): RelationOptions[];
    static getHasOnesMeta(target: any): HasOneOptions[];
    static defineHasOneMeta(target: any, options: HasOneOptions): void;
    static getHasManyMeta(target: any): HasManyOptions[];
    static defineHasManyMeta(target: any, options: HasManyOptions): void;
    static getHasOneThroughMeta(target: any): HasOneThroughOptions[];
    static defineHasOneThroughMeta(target: any, options: HasOneThroughOptions): void;
    static getHasManyThroughMeta(target: any): HasManyThroughOptions[];
    static defineHasManyThroughMeta(target: any, options: HasManyThroughOptions): void;
    static getBelongsToMeta(target: any): BelongsToOptions[];
    static defineBelongsToMeta(target: any, options: BelongsToOptions): void;
    static getBelongsToManyMeta(target: any): BelongsToManyOptions[];
    static defineBelongsToManyMeta(target: any, options: BelongsToManyOptions): void;
}
