import type { Comparator } from './compare.ts'; /** * Chooses the comparator for an object's keys based on its structural position * in a CloudFormation template, identified by `path` (the keys traversed from * the root to reach the object). * * - Root object (`path` is empty): the fixed section order. * - The root `Resources` object itself (`["Resources"]`): its logical-ID entries * are grouped by each resource's `Type`, then alphabetical by logical ID. * - A direct child of the root `Resources` section (`["Resources", ]`): the * fixed resource attribute order. * - A direct child of the root `Outputs` section (`["Outputs", ]`): the * fixed output entry order. * - A direct child of the root `Parameters` section (`["Parameters", ]`): * the fixed parameter entry order. * - One of the curated IAM policy-document positions under a resource's * `Properties` (see {@link resolvePolicyComparator}): the fixed policy document * order, and within its `Statement`(s) the fixed policy statement order. * - Everywhere else: plain alphabetical order. * * The position is matched strictly by path, so a `Type` or `Properties` key that * merely appears deeper in the tree is left to alphabetical sorting. */ export declare function resolveTemplateComparator(path: readonly string[], object: Readonly>): Comparator;