import { BasicResourceWithVaultArgs, LoginArgs, ResourceInfo, TypeOmit, WithDependsOn } from '../../types'; /** * Properties for a builder, including basic resource properties with vault information and dependencies. */ export type BuilderProps = BasicResourceWithVaultArgs & WithDependsOn; /** * Type to omit builder properties from a given type. */ export type OmitBuilderProps = TypeOmit; /** * Interface for a login builder. * @template IReturnInterface - The return type of the builder methods. */ export interface ILoginBuilder { /** * Method to generate login credentials. * @returns The return type specified by IReturnInterface. */ generateLogin(): IReturnInterface; /** * Method to set login information. * @param props - The login arguments. * @returns The return type specified by IReturnInterface. */ withLoginInfo(props: LoginArgs): IReturnInterface; } /** * Interface for a synchronous builder. * @template TResults - The type of the build result. */ export interface IBuilder { commonProps: BuilderProps; /** * Method to build the resource. * @returns The build result of type TResults. */ build(): TResults; } /** * Abstract class for a synchronous builder. * @template TResults - The type of the build result. */ export declare abstract class Builder implements IBuilder { commonProps: BuilderProps; protected constructor(commonProps: BuilderProps); abstract build(): TResults; } /** * Interface for an asynchronous builder. * @template TResults - The type of the build result. */ export interface IBuilderAsync extends Omit, 'build'> { /** * Method to build the resource asynchronously. * @returns A promise that resolves to the build result of type TResults. */ build(): Promise; } /** * Abstract class for an asynchronous builder. * @template TResults - The type of the build result. */ export declare abstract class BuilderAsync implements IBuilderAsync { commonProps: BuilderProps; protected constructor(commonProps: BuilderProps); abstract build(): Promise; } /** * Interface for enabling encryption on a builder. * @template TBuilderResults - The return type of the builder methods. */ export interface IEncryptable { /** * Method to enable encryption. * @param enabled - Whether encryption is enabled. * @returns The return type specified by TBuilderResults. */ enableEncryption(enabled?: boolean): TBuilderResults; } /** * Interface for locking a builder. * @template TBuilderResults - The return type of the builder methods. */ export interface ILockable { /** * Method to lock the builder. * @param lock - Whether the builder is locked. * @returns The return type specified by TBuilderResults. */ lock(lock?: boolean): TBuilderResults; } /** * Interface for ignoring changes on a builder. * @template TBuilderResults - The return type of the builder methods. */ export interface IIgnoreChanges { /** * Method to specify properties to ignore changes from. * @param props - The properties to ignore changes from. * @returns The return type specified by TBuilderResults. */ ignoreChangesFrom(...props: string[]): TBuilderResults; } /** * Interface for retrieving information from a builder. * @template TBuilderResults - The return type of the builder methods. */ export interface IInfo { /** * Method to retrieve information from the builder. * @returns The return type specified by TBuilderResults. */ info(): TBuilderResults; }