/**
 * Lints model relationships: every non-polymorphic belongs-to relationship should have an inverse
 * has-many or has-one relationship declared on its target model class. A missing inverse usually
 * means the target model was never told about the association (e.g. an Event model missing
 * `hasMany("priceCategorySettings")` while PriceCategorySetting declares `belongsTo("event")`).
 *
 * Specific relationships can be ignored through a JSON config file (default:
 * `relationship-lint.json` in the project directory, overridable with `--config <path>`):
 *
 *   {"ignore": ["PriceCategorySetting#event"]}
 *
 * where each entry is `<model class name>#<belongs-to relationship name>`.
 */
export default class VelociousCliCommandsLintRelationships extends BaseCommand {
    /**
     * Runs execute.
     * @returns {Promise<{offences: Array<{ignoreKey: string, message: string}>}>} - Resolves with the found offences (empty when the lint passes).
     */
    execute(): Promise<{
        offences: Array<{
            ignoreKey: string;
            message: string;
        }>;
    }>;
    /**
     * Loads the ignored relationship keys from the lint config file. The file is optional; when the
     * default path doesn't exist, no relationships are ignored. An explicitly passed `--config` path
     * must exist.
     * @returns {Promise<Set<string>>} - Ignored `<model>#<relationship>` keys.
     */
    _loadIgnoredRelationships(): Promise<Set<string>>;
}
import BaseCommand from "../../../../../cli/base-command.js";
//# sourceMappingURL=relationships.d.ts.map