import * as core from "@terrascript/core";
export interface CertificateConfigurationArgs extends core.SchemaArgs {
    certificateType?: string | core.StringOut;
}
export declare class CertificateConfiguration extends core.Schema<CertificateConfigurationArgs> {
    certificateType?: string | core.StringOut;
}
export interface ResourceCreationLimitPolicyArgs extends core.SchemaArgs {
    newGameSessionsPerCreator?: number | core.NumberOut;
    policyPeriodInMinutes?: number | core.NumberOut;
}
export declare class ResourceCreationLimitPolicy extends core.Schema<ResourceCreationLimitPolicyArgs> {
    newGameSessionsPerCreator?: number | core.NumberOut;
    policyPeriodInMinutes?: number | core.NumberOut;
}
export interface ServerProcessArgs extends core.SchemaArgs {
    concurrentExecutions: number | core.NumberOut;
    launchPath: string | core.StringOut;
    parameters?: string | core.StringOut;
}
export declare class ServerProcess extends core.Schema<ServerProcessArgs> {
    concurrentExecutions: number | core.NumberOut;
    launchPath: string | core.StringOut;
    parameters?: string | core.StringOut;
}
export interface RuntimeConfigurationArgs extends core.SchemaArgs {
    gameSessionActivationTimeoutSeconds?: number | core.NumberOut;
    maxConcurrentGameSessionActivations?: number | core.NumberOut;
    serverProcess?: core.Array<ServerProcess> | core.ArrayOut<ServerProcess>;
}
export declare class RuntimeConfiguration extends core.Schema<RuntimeConfigurationArgs> {
    gameSessionActivationTimeoutSeconds?: number | core.NumberOut;
    maxConcurrentGameSessionActivations?: number | core.NumberOut;
    serverProcess?: core.Array<ServerProcess> | core.ArrayOut<ServerProcess>;
}
export interface Ec2InboundPermissionArgs extends core.SchemaArgs {
    fromPort: number | core.NumberOut;
    ipRange: string | core.StringOut;
    protocol: string | core.StringOut;
    toPort: number | core.NumberOut;
}
export declare class Ec2InboundPermission extends core.Schema<Ec2InboundPermissionArgs> {
    fromPort: number | core.NumberOut;
    ipRange: string | core.StringOut;
    protocol: string | core.StringOut;
    toPort: number | core.NumberOut;
}
export interface FleetArgs extends core.ResourceArgs {
    buildId?: string | core.StringOut;
    certificateConfiguration?: CertificateConfiguration;
    description?: string | core.StringOut;
    ec2InboundPermission?: core.Array<Ec2InboundPermission> | core.ArrayOut<Ec2InboundPermission>;
    ec2InstanceType: string | core.StringOut;
    fleetType?: string | core.StringOut;
    instanceRoleArn?: string | core.StringOut;
    metricGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    name: string | core.StringOut;
    newGameSessionProtectionPolicy?: string | core.StringOut;
    resourceCreationLimitPolicy?: ResourceCreationLimitPolicy;
    runtimeConfiguration?: RuntimeConfiguration;
    scriptId?: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class Fleet extends core.Resource<FleetArgs> {
    arn: string | core.StringOut;
    buildArn: string | core.StringOut;
    buildId?: string | core.StringOut;
    certificateConfiguration?: CertificateConfiguration;
    description?: string | core.StringOut;
    ec2InboundPermission?: core.Array<Ec2InboundPermission> | core.ArrayOut<Ec2InboundPermission>;
    ec2InstanceType: string | core.StringOut;
    fleetType?: string | core.StringOut;
    id: string | core.StringOut;
    instanceRoleArn?: string | core.StringOut;
    logPaths: core.Array<string> | core.ArrayOut<core.StringOut>;
    metricGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    name: string | core.StringOut;
    newGameSessionProtectionPolicy?: string | core.StringOut;
    operatingSystem: string | core.StringOut;
    resourceCreationLimitPolicy?: ResourceCreationLimitPolicy;
    runtimeConfiguration?: RuntimeConfiguration;
    scriptArn: string | core.StringOut;
    scriptId?: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    constructor(name: string, args?: FleetArgs);
    getNamespace(): string;
}
//# sourceMappingURL=fleet.d.ts.map