/**
 * Configuration profile metadata
 */
export interface ProfileMetadata {
    PayloadIdentifier: string;
    PayloadDisplayName?: string;
    PayloadDescription?: string;
    PayloadType?: string;
    PayloadUUID?: string;
    PayloadVersion?: number;
}
/**
 * Install a configuration profile on the device
 *
 * Profiles can be:
 * - MDM enrollment profiles (.mobileconfig)
 * - WiFi configuration profiles
 * - VPN profiles
 * - Certificate profiles
 * - Any other configuration profile
 *
 * @param udid Device UDID (leave empty for first connected device)
 * @param profile Profile data (Buffer or base64 string)
 * @param maxRetries Maximum number of retry attempts (default: 3)
 * @returns Promise that resolves when profile is installed
 */
export declare function installProfile(udid: string | undefined, profile: Buffer | string, maxRetries?: number): Promise<void>;
/**
 * Get list of installed configuration profiles on device
 *
 * @param udid Device UDID (leave empty for first connected device)
 * @returns Dictionary of installed profiles keyed by PayloadIdentifier
 */
export declare function getProfileList(udid?: string): Promise<Record<string, ProfileMetadata>>;
/**
 * Wait for a profile to be installed on the device
 *
 * @param udid Device UDID
 * @param expectedProfileCount Expected number of profiles after installation
 * @param timeoutMs Timeout in milliseconds (default: 60000)
 * @param pollIntervalMs Poll interval in milliseconds (default: 1000)
 * @returns Promise that resolves when profile count increases
 */
export declare function waitForProfileInstallation(udid: string, expectedProfileCount: number, timeoutMs?: number, pollIntervalMs?: number): Promise<void>;
/**
 * Install enrollment profile and wait for it to be installed
 *
 * This combines installProfile and waitForProfileInstallation for convenience.
 *
 * @param udid Device UDID (leave empty for first connected device)
 * @param enrollmentProfile Enrollment profile data (Buffer or base64 string)
 * @param waitForInstallation Whether to wait for installation to be confirmed (default: true)
 * @returns Promise that resolves when profile is installed
 */
export declare function installEnrollmentProfile(udid: string | undefined, enrollmentProfile: Buffer | string, waitForInstallation?: boolean): Promise<void>;
//# sourceMappingURL=enrollment.d.ts.map