import { DeepPartial } from "@azure-tools/codegen";
import { PrimitiveSchema, Schema } from "../schema";
import { SchemaType } from "../schema-type";
/** a Schema that represents a string value */
export interface StringSchema extends PrimitiveSchema {
    /** the schema type  */
    type: SchemaType.String;
    /** the maximum length of the string */
    maxLength?: number;
    /** the minimum length of the string */
    minLength?: number;
    /** a regular expression that the string must be validated against */
    pattern?: string;
}
export declare class StringSchema extends PrimitiveSchema implements StringSchema {
    constructor(name: string, description: string, objectInitializer?: DeepPartial<StringSchema>);
}
/** a schema that represents a ODataQuery value */
export interface ODataQuerySchema extends Schema {
    /** the schema type  */
    type: SchemaType.ODataQuery;
}
export declare class ODataQuerySchema extends Schema implements ODataQuerySchema {
    constructor(name: string, description: string, objectInitializer?: DeepPartial<ODataQuerySchema>);
}
/** a schema that represents a Credential value */
export interface CredentialSchema extends PrimitiveSchema {
    /** the schema type  */
    type: SchemaType.Credential;
    /** the maximum length of the string */
    maxLength?: number;
    /** the minimum length of the string */
    minLength?: number;
    /** a regular expression that the string must be validated against */
    pattern?: string;
}
export declare class CredentialSchema extends PrimitiveSchema implements CredentialSchema {
    constructor(name: string, description: string, objectInitializer?: DeepPartial<CredentialSchema>);
}
/** a schema that represents a Uri value */
export interface UriSchema extends PrimitiveSchema {
    /** the schema type  */
    type: SchemaType.Uri;
    /** the maximum length of the string */
    maxLength?: number;
    /** the minimum length of the string */
    minLength?: number;
    /** a regular expression that the string must be validated against */
    pattern?: string;
}
export declare class UriSchema extends PrimitiveSchema implements UriSchema {
    constructor(name: string, description: string, objectInitializer?: DeepPartial<UriSchema>);
}
/** a schema that represents a Uuid value */
export interface UuidSchema extends PrimitiveSchema {
    /** the schema type  */
    type: SchemaType.Uuid;
}
export declare class UuidSchema extends PrimitiveSchema implements UuidSchema {
    constructor(name: string, description: string, objectInitializer?: DeepPartial<UuidSchema>);
}
/** a schema that represents a Uuid value */
export interface ArmIdSchema extends PrimitiveSchema {
    /** the schema type  */
    type: SchemaType.Uuid;
}
export declare class ArmIdSchema extends PrimitiveSchema implements ArmIdSchema {
    constructor(name: string, description: string, objectInitializer?: DeepPartial<ArmIdSchema>);
}
//# sourceMappingURL=string.d.ts.map