import * as z from "zod";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * Match all resources that start with this prefix.
 *
 * @remarks
 * Use an empty string to match all resource.
 */
export type Prefix = {
    /**
     * Match all resources that start with this prefix.
     *
     * @remarks
     * Use an empty string to match all resource.
     */
    prefix: string;
};
/**
 * Match only the resource with this exact name.
 *
 * @remarks
 * Use an empty string to match no resources.
 */
export type Exact = {
    /**
     * Match only the resource with this exact name.
     *
     * @remarks
     * Use an empty string to match no resources.
     */
    exact: string;
};
export type ResourceSet = Exact | Prefix;
/** @internal */
export declare const Prefix$inboundSchema: z.ZodType<Prefix, z.ZodTypeDef, unknown>;
/** @internal */
export type Prefix$Outbound = {
    prefix: string;
};
/** @internal */
export declare const Prefix$outboundSchema: z.ZodType<Prefix$Outbound, z.ZodTypeDef, Prefix>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Prefix$ {
    /** @deprecated use `Prefix$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Prefix, z.ZodTypeDef, unknown>;
    /** @deprecated use `Prefix$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Prefix$Outbound, z.ZodTypeDef, Prefix>;
    /** @deprecated use `Prefix$Outbound` instead. */
    type Outbound = Prefix$Outbound;
}
export declare function prefixToJSON(prefix: Prefix): string;
export declare function prefixFromJSON(jsonString: string): SafeParseResult<Prefix, SDKValidationError>;
/** @internal */
export declare const Exact$inboundSchema: z.ZodType<Exact, z.ZodTypeDef, unknown>;
/** @internal */
export type Exact$Outbound = {
    exact: string;
};
/** @internal */
export declare const Exact$outboundSchema: z.ZodType<Exact$Outbound, z.ZodTypeDef, Exact>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Exact$ {
    /** @deprecated use `Exact$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Exact, z.ZodTypeDef, unknown>;
    /** @deprecated use `Exact$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Exact$Outbound, z.ZodTypeDef, Exact>;
    /** @deprecated use `Exact$Outbound` instead. */
    type Outbound = Exact$Outbound;
}
export declare function exactToJSON(exact: Exact): string;
export declare function exactFromJSON(jsonString: string): SafeParseResult<Exact, SDKValidationError>;
/** @internal */
export declare const ResourceSet$inboundSchema: z.ZodType<ResourceSet, z.ZodTypeDef, unknown>;
/** @internal */
export type ResourceSet$Outbound = Exact$Outbound | Prefix$Outbound;
/** @internal */
export declare const ResourceSet$outboundSchema: z.ZodType<ResourceSet$Outbound, z.ZodTypeDef, ResourceSet>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ResourceSet$ {
    /** @deprecated use `ResourceSet$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ResourceSet, z.ZodTypeDef, unknown>;
    /** @deprecated use `ResourceSet$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ResourceSet$Outbound, z.ZodTypeDef, ResourceSet>;
    /** @deprecated use `ResourceSet$Outbound` instead. */
    type Outbound = ResourceSet$Outbound;
}
export declare function resourceSetToJSON(resourceSet: ResourceSet): string;
export declare function resourceSetFromJSON(jsonString: string): SafeParseResult<ResourceSet, SDKValidationError>;
//# sourceMappingURL=resourceset.d.ts.map