import * as z from "zod/v3";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { IamResource } from "./iamresource.js";
export type IamPermission4 = {};
export type IamPermissionSourceValue = string | number | boolean | IamPermission4 | Array<any>;
/**
 * The type of the permission, e.g. read, read_write, delete, etc.
 */
export declare enum IamPermissionValue {
    Read = "read",
    ReadWrite = "read_write",
    Approve = "approve",
    Delete = "delete",
    Use = "use",
    Export = "export",
    UnmappedValue = "unmapped_value"
}
/**
 * The type of the permission, e.g. read, read_write, delete, etc.
 */
export type IamPermissionValueOpen = OpenEnum<typeof IamPermissionValue>;
export type IamPermissionType = {
    sourceValue?: string | number | boolean | IamPermission4 | Array<any> | null | undefined;
    /**
     * The type of the permission, e.g. read, read_write, delete, etc.
     */
    value?: IamPermissionValueOpen | null | undefined;
};
export type IamPermission = {
    createdAt?: Date | null | undefined;
    description?: string | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * The name of the permission.
     */
    name?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * The resources that the permission applies to.
     */
    resources?: Array<IamResource> | null | undefined;
    type?: IamPermissionType | null | undefined;
    updatedAt?: Date | null | undefined;
};
/** @internal */
export declare const IamPermission4$inboundSchema: z.ZodType<IamPermission4, z.ZodTypeDef, unknown>;
export declare function iamPermission4FromJSON(jsonString: string): SafeParseResult<IamPermission4, SDKValidationError>;
/** @internal */
export declare const IamPermissionSourceValue$inboundSchema: z.ZodType<IamPermissionSourceValue, z.ZodTypeDef, unknown>;
export declare function iamPermissionSourceValueFromJSON(jsonString: string): SafeParseResult<IamPermissionSourceValue, SDKValidationError>;
/** @internal */
export declare const IamPermissionValue$inboundSchema: z.ZodType<IamPermissionValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const IamPermissionType$inboundSchema: z.ZodType<IamPermissionType, z.ZodTypeDef, unknown>;
export declare function iamPermissionTypeFromJSON(jsonString: string): SafeParseResult<IamPermissionType, SDKValidationError>;
/** @internal */
export declare const IamPermission$inboundSchema: z.ZodType<IamPermission, z.ZodTypeDef, unknown>;
export declare function iamPermissionFromJSON(jsonString: string): SafeParseResult<IamPermission, SDKValidationError>;
//# sourceMappingURL=iampermission.d.ts.map