import * as z from "zod";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type IamResource4 = {};
export type IamResourceSourceValue = IamResource4 | string | number | boolean | Array<any>;
/**
 * The type of the resource, e.g. user, group, permission, etc.
 */
export declare enum IamResourceValue {
    Project = "project",
    File = "file",
    Folder = "folder",
    Product = "product",
    Property = "property",
    User = "user",
    UnmappedValue = "unmapped_value"
}
/**
 * The type of the resource, e.g. user, group, permission, etc.
 */
export type IamResourceValueOpen = OpenEnum<typeof IamResourceValue>;
export type IamResourceType = {
    sourceValue?: IamResource4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The type of the resource, e.g. user, group, permission, etc.
     */
    value?: IamResourceValueOpen | null | undefined;
};
export type IamResource = {
    createdAt?: Date | null | undefined;
    description?: string | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * The location of the resource.
     */
    location?: string | null | undefined;
    /**
     * The name of the resource.
     */
    name?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    type?: IamResourceType | null | undefined;
    updatedAt?: Date | null | undefined;
};
/** @internal */
export declare const IamResource4$inboundSchema: z.ZodType<IamResource4, z.ZodTypeDef, unknown>;
/** @internal */
export type IamResource4$Outbound = {};
/** @internal */
export declare const IamResource4$outboundSchema: z.ZodType<IamResource4$Outbound, z.ZodTypeDef, IamResource4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace IamResource4$ {
    /** @deprecated use `IamResource4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<IamResource4, z.ZodTypeDef, unknown>;
    /** @deprecated use `IamResource4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<IamResource4$Outbound, z.ZodTypeDef, IamResource4>;
    /** @deprecated use `IamResource4$Outbound` instead. */
    type Outbound = IamResource4$Outbound;
}
export declare function iamResource4ToJSON(iamResource4: IamResource4): string;
export declare function iamResource4FromJSON(jsonString: string): SafeParseResult<IamResource4, SDKValidationError>;
/** @internal */
export declare const IamResourceSourceValue$inboundSchema: z.ZodType<IamResourceSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type IamResourceSourceValue$Outbound = IamResource4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const IamResourceSourceValue$outboundSchema: z.ZodType<IamResourceSourceValue$Outbound, z.ZodTypeDef, IamResourceSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace IamResourceSourceValue$ {
    /** @deprecated use `IamResourceSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<IamResourceSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `IamResourceSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<IamResourceSourceValue$Outbound, z.ZodTypeDef, IamResourceSourceValue>;
    /** @deprecated use `IamResourceSourceValue$Outbound` instead. */
    type Outbound = IamResourceSourceValue$Outbound;
}
export declare function iamResourceSourceValueToJSON(iamResourceSourceValue: IamResourceSourceValue): string;
export declare function iamResourceSourceValueFromJSON(jsonString: string): SafeParseResult<IamResourceSourceValue, SDKValidationError>;
/** @internal */
export declare const IamResourceValue$inboundSchema: z.ZodType<IamResourceValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const IamResourceValue$outboundSchema: z.ZodType<IamResourceValueOpen, z.ZodTypeDef, IamResourceValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace IamResourceValue$ {
    /** @deprecated use `IamResourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<IamResourceValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `IamResourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<IamResourceValueOpen, z.ZodTypeDef, IamResourceValueOpen>;
}
/** @internal */
export declare const IamResourceType$inboundSchema: z.ZodType<IamResourceType, z.ZodTypeDef, unknown>;
/** @internal */
export type IamResourceType$Outbound = {
    source_value?: IamResource4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const IamResourceType$outboundSchema: z.ZodType<IamResourceType$Outbound, z.ZodTypeDef, IamResourceType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace IamResourceType$ {
    /** @deprecated use `IamResourceType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<IamResourceType, z.ZodTypeDef, unknown>;
    /** @deprecated use `IamResourceType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<IamResourceType$Outbound, z.ZodTypeDef, IamResourceType>;
    /** @deprecated use `IamResourceType$Outbound` instead. */
    type Outbound = IamResourceType$Outbound;
}
export declare function iamResourceTypeToJSON(iamResourceType: IamResourceType): string;
export declare function iamResourceTypeFromJSON(jsonString: string): SafeParseResult<IamResourceType, SDKValidationError>;
/** @internal */
export declare const IamResource$inboundSchema: z.ZodType<IamResource, z.ZodTypeDef, unknown>;
/** @internal */
export type IamResource$Outbound = {
    created_at?: string | null | undefined;
    description?: string | null | undefined;
    id?: string | null | undefined;
    location?: string | null | undefined;
    name?: string | null | undefined;
    remote_id?: string | null | undefined;
    type?: IamResourceType$Outbound | null | undefined;
    updated_at?: string | null | undefined;
};
/** @internal */
export declare const IamResource$outboundSchema: z.ZodType<IamResource$Outbound, z.ZodTypeDef, IamResource>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace IamResource$ {
    /** @deprecated use `IamResource$inboundSchema` instead. */
    const inboundSchema: z.ZodType<IamResource, z.ZodTypeDef, unknown>;
    /** @deprecated use `IamResource$outboundSchema` instead. */
    const outboundSchema: z.ZodType<IamResource$Outbound, z.ZodTypeDef, IamResource>;
    /** @deprecated use `IamResource$Outbound` instead. */
    type Outbound = IamResource$Outbound;
}
export declare function iamResourceToJSON(iamResource: IamResource): string;
export declare function iamResourceFromJSON(jsonString: string): SafeParseResult<IamResource, SDKValidationError>;
//# sourceMappingURL=iamresource.d.ts.map