import type { LintContext } from '../linter/linter.types';
import type { Rule, RuleCategory, RuleSeverity, RuleType, RuleMeta, RuleMessage } from './rules.types';
export interface TopLevelPropertiesOrderRuleInputOptions {
    customOrder?: TopLevelKeys[];
}
interface TopLevelPropertiesOrderRuleOptions {
    customOrder: TopLevelKeys[];
}
export declare enum TopLevelKeys {
    XProperties = "x-properties",
    Version = "version",
    Name = "name",
    Include = "include",
    Services = "services",
    Networks = "networks",
    Volumes = "volumes",
    Secrets = "secrets",
    Configs = "configs"
}
export default class TopLevelPropertiesOrderRule implements Rule {
    static readonly name = "top-level-properties-order";
    get name(): string;
    type: RuleType;
    category: RuleCategory;
    severity: RuleSeverity;
    meta: RuleMeta;
    fixable: boolean;
    options: TopLevelPropertiesOrderRuleOptions;
    constructor(options?: TopLevelPropertiesOrderRuleInputOptions);
    getMessage({ key, correctOrder }: {
        key: string;
        correctOrder: string[];
    }): string;
    check(context: LintContext): RuleMessage[];
    fix(content: string): string;
}
export {};
