import type { CommandCategory, CommandMeta, PaginationStrategy } from './command-types.js';
export type CommandManifestEntry = {
readonly name: string;
readonly summary: string;
readonly category: CommandCategory;
readonly graphMethod: CommandMeta['graphMethod'];
readonly graphPathTemplate: string;
readonly graphDocsUrl: string;
readonly options: CommandMeta['options'];
readonly positionalArguments?: CommandMeta['positionalArguments'];
readonly example: string;
readonly responseShape?: string;
readonly bodyTemplate?: string;
readonly pagination?: true;
readonly paginationStrategy?: CommandMeta['paginationStrategy'];
readonly scopesRequired?: CommandMeta['scopesRequired'];
readonly needsElevatedToken?: CommandMeta['needsElevatedToken'];
readonly producesBytes?: CommandMeta['producesBytes'];
readonly stability?: CommandMeta['stability'];
};
export declare const paginationHintFor: (strategy: PaginationStrategy | undefined) => string;
export declare const PAGINATION_HINT = "Paginated by Microsoft Graph. The CLI hoists `@odata.nextLink` out of `data` to the **top-level `nextLink`** field of the response envelope. Pass that URL to `next-page --url ` and repeat until the field is absent. Do NOT look for `data[\"@odata.nextLink\"]` \u2014 the presenter strips it from `data` so the cursor is always at envelope level.";
export type CommandManifest = {
readonly package: string;
readonly version: string;
readonly generatedAt: string;
readonly commands: ReadonlyArray;
};
declare const CATEGORY_LABELS: Readonly>;
declare const CATEGORY_ORDER: ReadonlyArray;
export declare const renderReadmeTables: (manifest: CommandManifest) => string;
export declare const renderCommandMarkdown: (entry: CommandManifestEntry) => string;
export { CATEGORY_LABELS, CATEGORY_ORDER };