/**
 * PermissionRequestModal
 *
 * Web Component that shows the user a list of additional capabilities an
 * app wants to request on top of the currently-signed session. Used by
 * `TinyCloudWeb.requestPermissions` as the confirmation step before the
 * SDK installs a scoped runtime permission delegation.
 *
 * Matches the `SpaceCreationModal` pattern: a Web Component with a shadow
 * DOM, returning a completion promise via `getCompletionPromise()`. The
 * DOM lifecycle (append / remove) is managed by `ModalManager`.
 *
 * Canonical spec: `.claude/specs/capability-chain.md`.
 */
import type { PermissionEntry } from "@tinycloud/sdk-core";
export interface PermissionRequestModalOptions {
    /** Display name of the app requesting permissions (from the manifest). */
    appName: string;
    /** Optional app icon URL (from the manifest). */
    appIcon?: string;
    /** The additional permissions the app wants on top of its current session. */
    additional: PermissionEntry[];
    /** Called when the user clicks Decline or dismisses the modal. */
    onDismiss?: () => void;
}
export interface PermissionRequestResult {
    /** True when the user clicked Approve, false when they declined or dismissed. */
    approved: boolean;
    /** True when the user opted out of this SDK prompt for the next 30 days. */
    suppressPromptFor30Days?: boolean;
}
export declare class TinyCloudPermissionRequestModal extends HTMLElement {
    private options;
    private isVisible;
    private resolveResult;
    private completionPromise;
    constructor(options: PermissionRequestModalOptions);
    getCompletionPromise(): Promise<PermissionRequestResult>;
    connectedCallback(): void;
    disconnectedCallback(): void;
    private render;
    private renderEntry;
    private getModalStyles;
    private setupEventListeners;
    private handleKeyDown;
    private handleApprove;
    private show;
    private hide;
    private dismiss;
}
//# sourceMappingURL=PermissionRequestModal.d.ts.map