import { INTRINSIC_MARKER, type Intrinsic } from "@intentius/chant/intrinsic"; import { type Declarable } from "@intentius/chant/declarable"; /** * Fn::Sub intrinsic function implementation * Supports template string interpolation with AttrRefs, Declarables, and pseudo-parameters */ export declare class SubIntrinsic implements Intrinsic { readonly [INTRINSIC_MARKER]: true; private templateParts; private values; constructor(templateParts: string[], values: unknown[]); toJSON(): { "Fn::Sub": string; }; } /** * Tagged template function for creating Fn::Sub intrinsics * Usage: Sub`${AWS.StackName}-bucket` or Sub`${bucket.arn}` */ export declare function Sub(templateParts: TemplateStringsArray, ...values: unknown[]): SubIntrinsic; /** * Ref intrinsic function * References a parameter or resource by logical name. * Accepts either a string name or a Declarable entity (e.g. Parameter). * When given a Declarable, the logical name is resolved at serialization time. */ export declare class RefIntrinsic implements Intrinsic { readonly [INTRINSIC_MARKER]: true; private target; constructor(target: string | Declarable); toJSON(): { Ref: string; }; } /** * Create a Ref intrinsic. * Pass a string for direct parameter/resource names, or a Declarable (e.g. Parameter) for type-safe references. */ export declare function Ref(target: string | Declarable): RefIntrinsic; /** * Fn::GetAtt intrinsic function * Gets an attribute from a resource */ export declare class GetAttIntrinsic implements Intrinsic { readonly [INTRINSIC_MARKER]: true; private logicalName; private attribute; constructor(logicalName: string, attribute: string); toJSON(): { "Fn::GetAtt": [string, string]; }; } /** * Create a GetAtt intrinsic */ export declare function GetAtt(logicalName: string, attribute: string): GetAttIntrinsic; /** * Fn::If intrinsic function * Conditional value based on a condition */ export declare class IfIntrinsic implements Intrinsic { readonly [INTRINSIC_MARKER]: true; private conditionName; private valueIfTrue; private valueIfFalse; constructor(conditionName: string, valueIfTrue: unknown, valueIfFalse: unknown); toJSON(): { "Fn::If": [string, unknown, unknown]; }; } /** * Create an If intrinsic */ export declare function If(conditionName: string, valueIfTrue: unknown, valueIfFalse: unknown): IfIntrinsic; /** * Fn::Join intrinsic function * Joins values with a delimiter */ export declare class JoinIntrinsic implements Intrinsic { readonly [INTRINSIC_MARKER]: true; private delimiter; private values; constructor(delimiter: string, values: unknown[] | Intrinsic); toJSON(): { "Fn::Join": [string, unknown]; }; } /** * Create a Join intrinsic. `values` is a literal array, or a single * list-returning intrinsic (e.g. `Join(",", zone.NameServers)`). */ export declare function Join(delimiter: string, values: unknown[] | Intrinsic): JoinIntrinsic; /** * Fn::Select intrinsic function * Selects a value from a list by index */ export declare class SelectIntrinsic implements Intrinsic { readonly [INTRINSIC_MARKER]: true; private index; private values; constructor(index: number, values: unknown[] | Intrinsic); toJSON(): { "Fn::Select": [string, unknown]; }; } /** * Create a Select intrinsic */ export declare function Select(index: number, values: unknown[] | Intrinsic): SelectIntrinsic; /** * Fn::Split intrinsic function * Splits a string by delimiter */ export declare class SplitIntrinsic implements Intrinsic { readonly [INTRINSIC_MARKER]: true; private delimiter; private source; constructor(delimiter: string, source: string | Intrinsic); toJSON(): { "Fn::Split": [string, unknown]; }; } /** * Create a Split intrinsic */ export declare function Split(delimiter: string, source: string | Intrinsic): SplitIntrinsic; /** * Fn::Base64 intrinsic function * Encodes a string to Base64 */ export declare class Base64Intrinsic implements Intrinsic { readonly [INTRINSIC_MARKER]: true; private value; constructor(value: string | Intrinsic); toJSON(): { "Fn::Base64": unknown; }; } /** * Create a Base64 intrinsic */ export declare function Base64(value: string | Intrinsic): Base64Intrinsic; /** * Fn::GetAZs intrinsic function * Returns a list of Availability Zones for a region */ export declare class GetAZsIntrinsic implements Intrinsic { readonly [INTRINSIC_MARKER]: true; private region; constructor(region?: string | Intrinsic); toJSON(): { "Fn::GetAZs": unknown; }; } /** * Create a GetAZs intrinsic */ export declare function GetAZs(region?: string | Intrinsic): GetAZsIntrinsic; //# sourceMappingURL=intrinsics.d.ts.map