import { z } from 'zod';
/**
* GAM Command Executor
* Handles execution of GAM commands with proper validation, error handling, and output parsing
*/
export declare class GamExecutor {
private readonly gamPath;
private readonly timeout;
private readonly allowedCommands;
constructor(gamPath?: string, timeout?: number);
/**
* Validates if a GAM command is allowed
*/
private validateCommand;
/**
* Sanitizes command parameters to prevent injection attacks
*/
private sanitizeParams;
/**
* Executes a GAM command and returns the result
*/
executeCommand(args: string[]): Promise<GamResult>;
/**
* Parses GAM error messages to provide more helpful error information
*/
private parseGamError;
/**
* Checks if GAM is properly installed and configured
*/
checkGamInstallation(): Promise<boolean>;
/**
* Parses CSV output from GAM commands
*/
parseCsvOutput(output: string): Record<string, string>[];
/**
* Executes a GAM command and returns parsed CSV output
*/
executeCommandWithCsv(args: string[]): Promise<GamCsvResult>;
}
/**
* Result of a GAM command execution
*/
export interface GamResult {
success: boolean;
stdout: string;
stderr: string;
executionTime: number;
exitCode: number | null;
error?: string;
}
/**
* Result of a GAM command with parsed CSV data
*/
export interface GamCsvResult extends GamResult {
parsedData: Record<string, string>[];
}
/**
* Validation schemas for common GAM parameters
*/
export declare const GamSchemas: {
email: z.ZodString;
domain: z.ZodString;
orgUnitPath: z.ZodString;
maxResults: z.ZodOptional<z.ZodNumber>;
query: z.ZodOptional<z.ZodString>;
role: z.ZodOptional<z.ZodEnum<["MEMBER", "MANAGER", "OWNER"]>>;
firstName: z.ZodString;
lastName: z.ZodString;
password: z.ZodOptional<z.ZodString>;
groupName: z.ZodString;
description: z.ZodOptional<z.ZodString>;
};
//# sourceMappingURL=gam-executor.d.ts.map