/** * Managed-block markers. The `paws` shell function is written between these so * `padua profile --install` can replace it in place (idempotently) instead of * appending a duplicate on every upgrade. */ export declare const PAWS_MARKER_START = "# >>> padua paws >>> (managed by `padua profile --install` \u2014 do not edit)"; export declare const PAWS_MARKER_END = "# <<< padua paws <<<"; /** Resolved shell target, as produced by `getShellFunction()` in ./index.ts. */ export interface ShellTarget { content: string; shellType: string; configFile: string; } export interface InstallResult { shellType: string; /** Absolute rc path written, or the raw `$PROFILE` token for PowerShell. */ configPath: string; /** `installed` (fresh), `updated` (replaced existing), `manual` (PowerShell). */ action: 'installed' | 'updated' | 'manual'; /** The marker-wrapped block that was (or should be) written. */ block: string; } /** Wrap the emitted shell function in the managed-block markers. */ export declare function buildManagedBlock(fnContent: string): string; /** * Return `existing` with exactly one managed `paws` block. Any prior managed * block (marker pair) and any legacy un-marked `# Padua AWS Profile Switcher` * block are removed first, then a fresh marker-wrapped block is appended. * Idempotent: applying twice yields the same result. */ export declare function applyManagedBlock(existing: string, fnContent: string): string; /** * Install or upgrade the `paws` shell function in the user's shell rc file. * For bash/zsh the rc file is rewritten with a single managed block. PowerShell * is not auto-written (resolving `$PROFILE` from Node is unreliable); the caller * should print `result.block` and the manual instruction instead. */ export declare function installPawsFunction(target: ShellTarget): InstallResult; //# sourceMappingURL=shell-install.d.ts.map