export interface ProbeInput {
    /** The ARN of the subnet. */
    sourceArn: string;
    /** The destination IP address. This must be either IPV4 or IPV6. */
    destination: string;
    /** The port associated with the destination. This is required only if the protocol is TCP and must be a number between 1 and 65536. */
    destinationPort?: number;
    /** The protocol used for the network traffic between the source and destination. This must be either TCP or ICMP. */
    protocol: 'TCP' | 'ICMP';
    /** The size of the packets sent between the source and destination. This must be a number between 56 and 8500. */
    packetSize?: number;
    /** The list of key-value pairs created and assigned to the monitor. */
    tags?: Record<string, string>;
}
export interface CreateProbeInput {
    /** The name of the monitor to associated with the probe. */
    monitorName: string;
    /** Describes the details of an individual probe for a monitor. */
    probe: ProbeInput;
    /** Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request. */
    clientToken?: string;
    /** The list of key-value pairs created and assigned to the probe. */
    tags?: Record<string, string>;
}
export interface DeleteMonitorInput {
    /** The name of the monitor to delete. */
    monitorName: string;
}
export interface DeleteProbeInput {
    /** The name of the monitor to delete. */
    monitorName: string;
    /** The ID of the probe to delete. */
    probeId: string;
}
export interface GetMonitorInput {
    /** The name of the monitor that details are returned for. */
    monitorName: string;
}
export interface GetProbeInput {
    /** The name of the monitor associated with the probe. Run ListMonitors to get a list of monitor names. */
    monitorName: string;
    /** The ID of the probe to get information about. Run GetMonitor action to get a list of probes and probe IDs for the monitor. */
    probeId: string;
}
export interface ListMonitorsInput {
    /** The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value. If MaxResults is given a value larger than 100, only */
    maxResults?: number;
    /** The token for the next page of results. */
    nextToken?: string;
    /** The list of all monitors and their states. */
    state?: string;
}
export interface ListTagsForResourceInput {
    /** The */
    resourceArn: string;
}
export interface TagResourceInput {
    /** The ARN of the monitor or probe to tag. */
    resourceArn: string;
    /** The list of key-value pairs assigned to the monitor or probe. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The ARN of the monitor or probe that the tag should be removed from. */
    resourceArn: string;
    /** The key-value pa */
    tagKeys: string[];
}
export interface UpdateMonitorInput {
    /** The aggregation time, in seconds, to change to. This must be either 30 or 60. */
    aggregationPeriod: number;
    /** The name of the monitor to update. */
    monitorName: string;
}
export interface UpdateProbeInput {
    /** The name of the monitor that the probe was updated for. */
    monitorName: string;
    /** The ID of the probe to update. */
    probeId: string;
    /** The updated IP address for the probe destination. This must be either an IPv4 or IPv6 address. */
    destination?: string;
    /** The updated port for the probe destination. This is required only if the protocol is TCP and must be a number between 1 and 65536. */
    destinationPort?: number;
    /** he updated packets size for network traffic between the source and destination. This must be a number between 56 and 8500. */
    packetSize?: number;
    /** The updated network protocol for the destination. This can be either TCP or ICMP. If the protocol is TCP, then port is also required. */
    protocol?: 'TCP' | 'ICMP';
    /** The state of the probe update. */
    state?: 'PENDING' | 'ACTIVE' | 'INACTIVE' | 'ERROR' | 'DELETING' | 'DELETED';
}
/** NetworkMonitor service binding for Step Functions SDK integrations. */
export declare class NetworkMonitor {
    constructor();
    createProbe<T>(params: CreateProbeInput): Promise<T>;
    deleteMonitor<T>(params: DeleteMonitorInput): Promise<T>;
    deleteProbe<T>(params: DeleteProbeInput): Promise<T>;
    getMonitor<T>(params: GetMonitorInput): Promise<T>;
    getProbe<T>(params: GetProbeInput): Promise<T>;
    listMonitors<T>(params: ListMonitorsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateMonitor<T>(params: UpdateMonitorInput): Promise<T>;
    updateProbe<T>(params: UpdateProbeInput): Promise<T>;
}
//# sourceMappingURL=NetworkMonitor.d.ts.map